Задать вопрос
  • Vcpkg: почему видит хедеры, но не видит cpp файлы?

    @res2001
    forIXsins, Обычно нет нужды использовать отладочные версии библиотек, разве что вы хотите отладить саму библиотеку. Так что как правило используют release сборку библиотек всегда.
    Вот тут сказано как устанавливать только release версиии: https://learn.microsoft.com/en-us/vcpkg/get_starte...
    Тут вроде бы дается рецепт как заставить vcpkg использовать нужный вариант библиотеки: https://learn.microsoft.com/en-us/vcpkg/users/buil...
    Написано
  • Vcpkg: почему видит хедеры, но не видит cpp файлы?

    @res2001
    forIXsins,
    UPD2: Нашёл решение - поменял конфигурацию решения с Debug на Release и всё заработало

    Решение так себе, т.к. наверняка вам захочется в процессе разработки своего проекта использовать отладчик (даже если пока такой мысли не возникает). С release версией вы его использовать не сможете, а debug - у вас не собирается.
    Предполагаю, что надо просто установить debug версию библиотеки с помощью того же vcpkg. Как это сделать - смотрите в его документации.
    Впрочем должно быть и какое-то другое, более правильное, решение, т.к. ситуация когда используется библиотека в release сборке, а само приложение собрано в debug - вполне нормальная ситуация. Предполагаю, что просто надо задать в VS какие-то опции, чтоб она использовала сборки библиотек, те которые вам нужны, а не по собственному усмотрению. Какие именно опции задать, я не в курсе. Вероятно это рулится какими-то опциями/переменными VCPKG.
    Написано
  • Vcpkg: почему видит хедеры, но не видит cpp файлы?

    @res2001
    Не скажу ничего про vcpkg, мало с ним знаком. Но сами принципы подключения библиотек общие, каким бы компилятором или пакетным менеджером вы не пользовались. Про них и напишу пару слов.

    vcpkg - это просто пакетный менеджер, он ничего "не видит", ему это до лампочки. Он просто устанавливает пакеты из репозитория по правилам описанным в самом пакете.
    "Видит" или "не видит" компилятор при сборке проекта. НО!
    Когда вы подключаете библиотеку, то cpp/с файлы библиотеки не нужны в принципе компилятору. Он использует уже скомпилированный код в lib/dll (a/so) файлах. Для правильной сборки вашего проекта компилятору нужны только файлы заголовков библиотеки, т.к. в них описаны сигнатуры экспортируемых функций для формирования правильного вызова. А само тело функции найдется в lib/dll файле.
    Если у вас не хватает какого-то символа из библиотеки (а остальные все на месте), то возможно несколько вариантов:
    1. используемая вами версия библиотеки старая (или наоборот новая) и этого символа в этой версии библиотеки в принципе нет - он появился только в более новой версии библиотеки (или он устарел и его удалили из новой версии библиотеки). Как правило узнать об этом можно из документации на библиотеку, ну или порывшись в исходниках.
    2. Этот символ вообще не из этой библиотеки и вам нужно подключить еще какую-то.

    Для полноты вопроса вам надо добавить текст ошибки, которые выдает компилятор, чтоб людям было понятней, на что конкретно он ругается.
    Написано
  • Как реализовать VPN-соединение до удалённого сервера с установленным Vipnet?

    @res2001
    планировал подключаться к закрытым ресурсам через VPN по стандартному для Windows протоколу PPTP

    Уж лучше SSTP использовать, то же стандартный для винды.
    VPN Vipnet блокирует входящие пакеты

    Возможно в одном из двух ВПНов (или в обоих вместе) ВПН подключение является маршрутом по умолчанию.
    На сколько я понял вам доступ по ВПН нужен только к корпоративным ресурсам. Поэтому выключите галку "использовать как маршрут по умолчанию" (не помню точно как она называется, находится где-то в глубине настроек IPv4 ВПН соединения) и добавьте маршурты до корпоративных ресурсов вручную. Маршруты надо будет добавлять как на стороне клиента, так и на стороне промежуточного Windows Server 2022. С помощью команд powershell (Add-VpnConnectionRoute) можно добавить статические маршруты, которые будут добавляться в таблицу маршрутизации при подключении к ВПН.
    При такой настройке ходить в корп.сеть вы будете через ВПН, а в интернет будете попадать напрямую.
    Написано
  • Какой гипервизор (на базе основной ОС, а не автономный) из популярных (VirtualBox, VMWare и др) больше подходит для бэкенд разработки и тестирования?

    @res2001
    tests12345, Похоже у вас каша в голове. У снапшотов достаточно узкое предназначение, не нужно их натягивать на темы куда они не натягиваются (2, 3). К тому же снапшоты удовольствие не бесплатное - платите и дисковым пространством хоста и некоторым замедлением дисковых операций в ВМ. Особенно когда у вас будут "ветки снапшотов" для одной ВМ.

    Из виртуализации использую на винде в основном WSL для большинства задач. Но иногда подключаю VirtualBox - мне регулярно бывает необходимо установить специфические сборки линукса, в WSL это проблематично. В целом WSL удобна в том плане, что у тебя винда и линукс в одном флаконе, практически "бесшовно". Да, есть еще некоторые вопросы с интеграцией, но это мелочи. Очень не плохо микрософту удалась интеграция VSCODE + WSl. Да и GUIевые линуксовые приложения теперь запускаются в винде почти как родные.
    На линуксе - VirtualBox.
    В принципе VirtualBox хватает, виртуалками, кстати, можно управлять из питона - в установочный пакет входят модули для питона. Бывает полезно.
    Написано
  • Как из одного приложения запустить другое?

    @res2001
    Only4You, Вот сейчас нагуглилась инструкция от микрософт по настройке удаленного WMI подключения:
    https://learn.microsoft.com/ru-ru/windows/win32/wm...
    Раньше ее как-то не находил, но были и инструкции от других авторов. Я ж писал выше, что требуется дополнительная настройка, не только вопрос с UAC.
    По ссылке самое основное - это настройка фаервола. Вроде бы хватало только открытие 135 порта тем или иным способом. По моему psexec использует тот же механизм для удаленного запуска, что и wmi/wmic и видимо schtasks то же.
    Пункт про CIMOM я вообще первый раз вижу.

    Вот еще не плохая инструкция по psexec: https://hackware.ru/?p=11638

    В общем эти инструменты работающие, надо только немного приложить голову и руки для настройки окружения.
    Написано
  • Как из одного приложения запустить другое?

    @res2001
    Only4You, Кстати, пришла в голову мысль. Можно на клиенте скриптом определять состояние клиентского соединения, например анализировать вывод netstat, если соединение не в состоянии ESTABLISHED, то перезагружаем приложение. Т.е. процесс вообще на автомате, без участия сервера.
    Можно реализовать простым батником, запихать его в шедулер на срабатывание раз в минуту например.
    Написано
  • Как из одного приложения запустить другое?

    @res2001
    Only4You, psexec/wmi (и видимо schtasks то же, не проверял) обычно требуют некоторой настройки на всех удаленных компах, к которым планируется подключение. Я на вскидку не скажу, что там надо делать, погуглите (если возникают ошибки при подключении то можно гуглить по тексту ошибки). По крайней мере в одноранговой сети (без АД) у меня никогда это не работало из коробки, но после небольших настроек работает хорошо.
    Кроме того UAC на удаленных портах блокирует сетевое подключение с админскими правами, т.к. требует повышение привилегий, а это в удаленном случае сделать не возможно. Надо отключить на удаленных компах это поведение (не сам UAC, а только его действие при удаленном подключении), это делается 1 параметром реестра (гуглите параметр LocalAccountTokenFilterPolicy). Если же развернута АД, то по идее оно и так должно работать если подключаетесь с учетной записью доменного админа.

    На мой взгляд вышеперчисленная возня с настройками - это гораздо проще, чем писать и поддерживать самопальное клиент/серверное приложение.
    Написано
  • Как вывести названия файлов списком?

    @res2001
    Одно но! Если файлов будет достаточно много, то размер получившейся итоговой команды:
    echo !line! >> spisok.txt
    вылезет за максимально возможный размер и будет ошибка переполнение буфера или что-то в этом роде, в общем команда не отработает. На сколько помню в cmd максимальный размер команды 4 Кб.

    Можно воспользоваться конструкцией для блокировки перевода строки в echo и выводить каждый файл отдельно. Пример подхода описан тут: https://stackoverflow.com/questions/7105433/window...

    Другой вариант, более простой, - сформировать файл со списком с помощью dir, а затем в этом файле заменить переводы строк символом разделителем. В винде нет стандартных утилит, которые позволяют это сделать. Но в линуксовом наборе стандартных утилит ком.строки инструментов хватает. Замену можно произвести например с помощью утилиты sed или проще tr. Типичный пример применения tr - это замена виндового варанта CRLF на никсовый LF, погуглите. Линуксовые утилиты сейчас есть много где. Как мне кажется самый простой вариант - установить msys2 там в комплекте уже все есть, если добавить в PATH путь к каталогам bin msys2, то все утилиты можно будет вызывать непосредственно из cmd.
    msys2 - это bash shell с набором стандартных утилит и пакетным менеджером. С помощью пакетного менеджера можно поставить из репозиториев очень много разного софта, который используется в основном в Linux. Основное предназначение - это сборка софта предназначенного для Linux под винду с помощью портированного компилятора. Компилятор там то же не один, а несколько вариантов, например mingw, clang.
    Написано
  • Надо ли выгружать файл базы данных на гитхаб?

    @res2001
    Обычно как часть проекта делают некий скрипт(ы) для создания пустой базы данных и их уже можно хранить в гите. В процедуру установки/настройки приложения надо включить описание создания базы данных с помощью скриптов.
    Как вариант - встроить функционал по созданию пустой БД в приложение.
    Написано
  • Как можно ограничить скорость интернета для каждого клиента отдельно в openvpn?

    @res2001
    К OpenVPN это не имеет отношения. Это делается через Queueing Disciplines, которые реализованы в ядре ОС.
    Почитайте про Traffic Control в линуксе.
    LARTC например: https://lartc.org/howto/
    Документ есть на русском. Не смотрите, что документ старый, там все актуально, разве что типов дисциплин стало больше, чем описывается. Но тут уже можно будет маны подключить, если интересно.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    а в чём преимущество

    Преимущество в том, что файл с диском всегда лежит в каталоге с ВМ, никаких дополнительных действий делать не нужно. Но они понадобятся уже на новом хосте - надо создать новую виртуалку.
    Это может быть полезно, если у вас упал сам хост и надо восстановить виртуалку с диска - просто вытаскиваете файл и цепляете его к новой виртуалке.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    Или тут подводные камни?

    Этим я хотел показать, что конфигурация в случае типовой настройки ВМ вообще мало значима, подойдет почти любая другая типовая конфигурация. Достаточно только перенести файл вирт.диска.

    Подводные камни из того что сейчас в голову пришло:
    1. Можно выбрать EFI, если в старой конфигурации этого нет, а в новой есть то ВМ не поднимется.
    2. Возможно еще без TPM 2.0 Вин11 в ВМ не поднимется.

    Так то физический диск с виндой можно легко переставить на другой комп с другой конфигурацией и то же должен подняться если новая конфигурация соответствует общим требованиям Вин11. С линуксом примерно так же.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345, Дополнения, это драйвера для виртуальных устройств, тот функционал что ты перечислил - это лишь дополнительные плюшки, которые становятся возможны, когда работают правильные драйвера. Дополнения ставь всегда, если это возможно.
    Ограничений не накладывает. Разве что, на новом месте у тебя будет более свежая версия VB и он захочет их обновить.
    А мне казалось, что проще засунуть вообще всю виртуальную в ova (не только диск) и потом восстанавливать бэкап оттуда, особенно для новичков и особенно когда это надо делать пару раз в неделю.

    Я не настаиваю :-) Это для общего развития.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    Кстати, хороший вопрос.

    Если бы ты пробрасывал в виртуальную машину реальные устройства, то ты бы это знал, т.к. это отдельный процесс, в типичную конфигурацию по умолчанию, где задаешь только количество процов, размер ОЗУ и диска это не входит.
    Так что по умолчанию устройства виртуальные.
    В такой конфигурации вообще можно перетащить только файл жесткого диска на новый комп и создать виртуалку с нуля с такой же или немного другой конфигурацией, но диск не создавать новый, а подключить старый файл, который перенес. И все должно заработать.
    ОЗУ и процессор, кстати, в виртуалке вполне реальные используются. Но все остальное - эмулируется. Правда реальное ОЗУ, как известно, давно уже виртуальное даже в хостовой системе.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    А тута

    Подобная возможность есть обычно в любых системах сборки. Просто указываешь какой компилятор использовать. Правда обычно задают префикс компилятора (в твоем примере arm-linux-gnueabihf-) а остальное подставляется системой сборки.
    К компилятору еще нужны заголовки ядра линукс правильной версии, используемый в целевой системе libc. Это такие основные моменты. Но обычно это уже есть в составе компилятора собранного под целевую платформу.
    Написано
  • Что будет, если не удалять графические объекты при завершении программы в C++ SDL2?

    @res2001
    Ланской Кирилл, Не надеятся.
    Я ж говорю - исправлять.

    Если это не намеренная ошибка, а в программировании никто не застрахован от ошибок и это регулярно случается со всеми. То ошибка рано или поздно даст о себе знать, если на тестах - хорошо, если у пользователей - плохо, но обычно не страшно. Воспроизводите, локализуете, исправляете. Все.

    Если же вы намеренно не освобождаете ресурсы надеясь на ОСь - ну это в целом ваше персональное дело. Если этот подход пока у вас прокатывает - ну ладно. Вас же никто не может заставить писать delete на каждый new в конце концов. Как напишите программу, так она и работать будет. Но может настать час, когда вам же этот подход как-то вылезет боком. Ну тогда просто в данном конкретном месте освободите и может быть и дальше все буде ОК.

    Но, например, если вы пишете библиотеку с предположительно не ограниченным количеством пользователей, то здесь просто необходимо освобождать все, что библиотека захватила, т.к. предугадать как будет использоваться библиотека конечным пользователем вы обычно не можете. В общем это примерно то, о чем я писал в ответе.

    Лично я всегда все освобождаю.
    Написано
  • Что будет, если не удалять графические объекты при завершении программы в C++ SDL2?

    @res2001
    Ланской Кирилл, Исправите.
    Как говорит нынешний мин.обороны "Ошибаться можно, врать нельзя" :-)
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    Ну и в целом, если ты можешь собрать окружение снова для сборки под устройство, значит ты знаешь всё необходимое.

    Это верно, конечно. Вот только времени на это уйдет очень много. Так что лучше всего узнать только то, что необходимо для конкретной задачи, а остальное узнавать по мере необходимости/ желания и наличия свободного времени.
    Я хотел попробовать сам у себя на моей новой убунте всё собрать

    С этим есть проблема версионности. Т.к. далеко не все библиотеки обратно совместимы со старыми версиями (тот же Qt) и т.д. и т.п.
    Поэтому в эмбедед достаточно редко обновляют окружение (ОС и основные библиотеки), т.к. это часто требует большой работы по адаптации собственного кода к новым версиям окружения.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    узнал, действительно у нас собственная сборка линукса под наше устройство

    Добро пожаловать в эмбедеры :-)

    Часто бывает, что разработчики железок с линуксом на борту для себя в отладочных целях делают сборку виртуальных машин с окружением, тем же, что будет на борту.
    Так что можно использовать для отладки приложения такую виртуалку, а не железку. Если такой подход у вас практикуется.
    Написано