VS2019 Linux C ++: неопределенная ссылка "dlopen", флаг компилятора g ++ -ldl не применяется - PullRequest
0 голосов
/ 09 апреля 2020

Я делаю удаленную сборку C ++ из VS2019 на целевой машине Ubuntu. Мне нужно загрузить динамические c библиотеки внутри кода, поэтому я включаю и вызываю функции dlopen и dlsym внутри исходного кода. Чтобы это работало, мне, очевидно, нужно передать параметр -ldl в g ++, который я делаю на страницах свойств C / C ++ -> Все параметры -> Дополнительные параметры. Это правильное место, чтобы добавить это? Я не вижу другого более разумного места, где я могу добавить к аргументам команды g ++. Это не работает при отправке сборки из VS2019, но если я перенесу тот же источник в Linux и скомпилирую там напрямую, используя g ++ с тем же флагом, это не создаст проблем. Я предполагаю, что опция -ldl никогда не переходит с VS2019 на Linux. Как я могу установить это правильно или изменить пользовательские аргументы командной строки, которые отправляются в g ++?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Это сработало для меня: установите Linker-> Input-> Additional Dependencies (введите -ldl в это поле).

0 голосов
/ 09 апреля 2020

Конфигурация проекта Linux описана здесь: https://docs.microsoft.com/en-us/cpp/linux/configure-a-linux-project?view=vs-2019

Свойства компоновщика описаны здесь: https://docs.microsoft.com/en-us/cpp/linux/prop-pages/linker-linux?view=vs-2019

См. Свойство "Зависимости библиотеки".

...