在Visual Studio 2017中链接Nlopt-2.4.2的问题

时间:2019-03-04 11:16:19

标签: c++ visual-c++ linker nlopt

一些古老的故事:我正在尝试get the bolt-lmm software在Windows机器上进行编译,因为这对我所在的研究小组将是一个很好的补充。该软件的开发人员仅使linux静态可执行。 ,但提供了源代码。我习惯于使用R或python进行编程,这是我第一次接触C ++。

我已经解决了很多问题,但是由于某些原因,我无法使Visual Studio与Nlopt-2.4.2正确链接。

downloaded it 并按照此处给出的步骤进行安装。

我可以说我已经完成了将Nlopt库链接到项目的操作,如How to add additional libraries to Visual Studio project?

中所述。

我仍然收到类似的错误:

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 :(得分:0)

我做了更多的挖掘工作,看来链接器需要的不仅仅是.lib文件的文件夹。

此帖子总结如下: Linking a static library to my project on Visual Studio 2010

基本上,您只需要告诉链接程序lib的位置和.lib文件的实际名称即可。

希望这会帮助那些忘记/不知道某些图书馆可能需要手动添加图书馆名称的人。

TL; DR: 打开项目的配置属性>链接器>常规 然后在“附加库目录”行中将路径添加到.lib文件

然后(仍在配置属性中)转到链接器>输入 将.lib文件名添加到“添加依赖项”行中,例如libnlopt-0.lib(不要忘了用“;”分隔)