我使用CMake和Visual C++构建了HyDE库。然后,仍然在VC++中,我能够成功创建代码并构建链接到HyDE.lib和HyDE头文件的可执行文件。
然后,我发现为了与公司中的其他人一起工作,最好在Eclipse CDT中进行开发。我对Eclipse CDT知之甚少,因此创建了一个默认的hello world项目,删除了代码,然后将所有代码转储到src文件夹中。然后,我尝试更改include和lib路径以及lib,以反射(reflect)在VC++中起作用的内容。此时一切似乎都可以编译,但是在链接时出现错误:
(还有更多类似这样的错误,所有错误都涉及HyDE方法。)这是在命令行中运行的内容:
这绝对不是库的订购问题,因为我还有其他订购(只有两个)。用VC++(使用Windows编译器)编译HyDE.lib并使用g++编译程序是否有问题? Eclipse CDT自动生成makefile的方式是否有问题?还有其他想法吗?
(注意:关于SO的问题似乎还有很多其他问题,但是通读它们之后,我还没有找到解决我问题的方法。)
最佳答案
经典缺少符号错误。哪个源文件定义:HyDEAPI::HyDE::HyDE(HyDESystemModel::SystemModel*, bool)'
?
该文件是否已添加到编辑中?您能在您粘贴的命令行上找到它吗?
如果此符号属于外部库,则在使用-L
添加目录路径之后,可以使用-l
添加要与程序链接的特定库的名称。
我建议您尝试在编译命令中添加HyDE.lib的目录路径,然后立即添加库名称,如下所示:
-L"C:\path_to_hyde_library" -l:HyDE.lib
然后告诉我们发生了什么。