Qt Creator和外部库无法链接(HALCON)

时间:2012-02-29 16:01:18

标签: qt linker 32-bit qmake

我已经在网上搜索了好几个小时,但仍然没有找到解决我问题的方法,所以我希望你们能帮助我。 我试图将外部库添加到我的Qt项目(4.7.4 32位)。我正在使用CV-Software Halcon(x86-win32),并希望将示例测试项目(matching.pro)链接到Halcon的lib文件夹中的halconcpp.lib和halcon.lib。所以我在.pro文件中添加了以下行。

#includes
INCLUDEPATH += C:/"Program Files"/MVTec/HALCON/include
INCLUDEPATH += C:/"Program Files"/MVTec/HALCON/include/cpp
#libs
LIBS            += C:/"Program Files"/MVTec/HALCON/lib/x86-win32/halconcpp.lib
LIBS            += C:/"Program Files"/MVTec/HALCON/lib/x86-win32/halcon.lib

但不幸的是,编译过程仍然会产生链接错误:

release/qhalconwindow.o:qhalconwindow.cpp:(.text+0x3a): undefined reference to `_imp___ZN6Halcon18set_window_extentsElllll'
release/qhalconwindow.o:qhalconwindow.cpp:(.text+0x67): undefined reference to `_imp___ZN6Halcon12close_windowEl'
release/qhalconwindow.o:qhalconwindow.cpp:(.text+0xbf): undefined reference to `_imp___ZN6Halcon12close_windowEl'
release/qhalconwindow.o:qhalconwindow.cpp:(.text+0x10b): undefined reference to `_imp___ZN6Halcon12close_windowEl' 
etc...

所以我认为它与qmake的设置有关,特别是它链接到halconcpp.lib的方式。 而且因为在编译器设置方面我非常喜欢,我唯一的希望就是你的知识。

感谢您抽出宝贵时间帮助我! :) 我非常感谢。 招呼

2 个答案:

答案 0 :(得分:2)

问题是halconlibsMingw不兼容,它们只与Visual C ++编译器兼容。

当我使用Qt插件切换到VisualStudio时,一切都完美无瑕。

我希望这可以帮助任何人绊倒这个问题。

答案 1 :(得分:1)

您可以做一件事,而不是手动将外部库添加到.pro文件中。

右键单击您的主项目,然后选择“添加库”选项,然后它将要求

  1. 外部图书馆
  2. 内部图书馆
  3. 系统库
  4. 然后选择外部库,休息所有事情都由Qt Creator完成,即它会自动添加.pro文件的路径并将库链接到您的项目。