将opencv“.a”库与mingw和Qt 5.0链接

时间:2013-02-16 20:34:16

标签: qt opencv static mingw .a

这个很难!请不要误以为这是一个新手问题;)我在这个OpenCV + MinGW静态的东西中有太多的里程用于简单的错误....

环境: 一个。 Qt 5.0.1使用MinGW(qt-project的标准开源下载)构建 - 所以一切都是使用相同的MinGW环境构建的。 湾使用CMake我设置最小版本(使用与Qt相同的g ++ / gcc)并关闭SHARED_LIBRARIES。 C。生成的cmake + mingw32-make + mingw32-make install工作正常。

直到这里一切看起来都很顺利......

现在我添加了:

win32-g++:INCLUDEPATH += D:/Dev/opencv/build/install/include
win32-g++:LIBS += -LD:/Dev/opencv/build/install/lib
win32-g++:LIBS += -static
win32-g++:LIBS += -llibopencv_core243d
win32-g++:LIBS += -llibopencv_imgproc243d
win32-g++:LIBS += -llibopencv_highgui243d

(也没有“win32-g ++”补充..)

我得到d:/dev/qt/qt5.0.1/tools/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llibopencv_highgui243d

...
...

现在..我在右侧目录中有libopencv_highgui243d.a,但ld.exe链接器忽略了除lib之外的任何内容!应该是一个MS库(我想首先避免它!) - 我甚至试图将.a文件重命名为.lib,导致链接器查看文件,但显示许多“未引用”错误...

那么谁应该受到责备?链接器? CMake的? MinGW的? Qt的? ....

我尝试了很多命令行/标志选项但没有成功..

1 个答案:

答案 0 :(得分:2)

您应该将库称为:

LIBS += -lopencv_core243d
LIBS += -lopencv_imgproc243d
LIBS += -lopencv_highgui243d

由于-l已在名称的开头插入 lib