Проблемы с подключением Nlopt-2.4.2 в visual studio 2017 - PullRequest
0 голосов
/ 04 марта 2019

Немного предыстории: я пытаюсь заставить программное обеспечение bolt-lmm скомпилировать на компьютере с Windows, потому что это было бы хорошим дополнением к исследовательской группе, в которой я работаю. Разработчики программного обеспечениясделали только статическую исполняемую Linux, но сделали доступным исходный код.Я привык к программированию на R или Python, и это моя первая встреча с C ++.

Я решил немало проблем, но по какой-то причине я не смог заставить Visual Studio связываться с ними.правильно с Nlopt-2.4.2.

Я скачал его и выполнил инструкции по его установке.

Я могу сказать, что сделал то же самое, чтобы связать библиотеку Nlopt с проектом, какописано в Как добавить дополнительные библиотеки в проект Visual Studio?

Я все еще получаю сообщения об ошибках типа:

Error   LNK2019 unresolved external symbol __imp__nlopt_create referenced in function "public: __thiscall nlopt::opt::opt(enum nlopt::algorithm,unsigned int)" (??0opt@nlopt@@QAE@W4algorithm@1@I@Z)    boltCompiler    C:\Users\au483192\source\repos\boltCompiled\boltCompiler\NonlinearOptMulti.obj  1   

(всего таких 12 типовоб ошибке и ссылка об ошибке 1120, которая просто говорит мне, что есть 12 неразрешенных вечных.)

Я надеюсь, что этой информации достаточно, чтобы дать подсказку о том, что идет не так.

1 Ответ

0 голосов
/ 04 марта 2019

Я еще немного покопался, и, похоже, компоновщику нужно было больше, чем просто папка для .lib-файла.

В этом посте резюмируется следующее: Связывание статической библиотеки с моим проектом в Visual Studio 2010

По сути, вам просто нужно сообщить компоновщику расположение библиотеки ифактическое имя .lib-файла.

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

TL; DR: открыть свойства конфигурациидля проекта> linker> general Затем добавьте путь к файлу .lib в строке «добавление каталогов библиотеки»

Затем (все еще в свойствах конфигурации) перейдите к linker> input добавьте имя файла .lib кСтрока "сложение зависимостей", например, libnlopt-0.lib (не забудьте отделить с помощью ";")

...