2011-08-22 187 views
1

我无法让第三方库(libconfig ++)在Qt中工作。与Qt(C++)一起使用第三方库(libconfig)

当Qt的编译,我得到错误信息,如:

undefined reference to `_imp___ZN9libconfig6ConfigC1Ev' 
undefined reference to `_imp___ZN9libconfig6Config8readFileEPKc' 
undefined reference to `_imp___ZNK9libconfig6Config5writeEP6_iobuf' 

在我的.pro文件,我有:

LIBS += -L$$PWD/libconfig/lib -lconfig++ 

而且我已经添加libconfig ++。dll和libconfig ++。lib到正确的文件夹。

该项目成功使用了另一个第三方库(以类似的方式),所以我不认为它是一种语法或包含问题。

它似乎可能是一个C++名称mangling问题?我如何确认这一点?

现在,我在VS 2008中构建了库(我试图将它作为一个动态库和静态库来构建,但都不起作用)。我想我以前可以和其他图书馆一起做这件事。 VS中有一些标志,我没有正确设置?

感谢

+1

您确认库及其路径正确显示在构建输出? – Troubadour

+0

是的,路径显示正确。我拥有与我已经包含其他第三方库完全相同的代码,并且如果我在代码中删除了对libconfig的引用,代码就可以正常工作。我强烈怀疑名字mangling,但我不知道如何确认这是问题(或如何解决它) – Peter991

+0

配置属性 - > C/C++ - >高级 - >编译为设置为编译为C++代码/ TP)? libconfig设置为依赖项(Project-> Project Dependencies ...)? – Gnawme

回答

2

如果你的库被称为 “libconfig ++。LIB”,你可能需要更改

LIBS += -L$$PWD/libconfig/lib -lconfig++ 

LIBS += -L$$PWD/libconfig/lib -llibconfig++