这个很难!请不要误以为这是一个新手问题;)我在这个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的? ....
我尝试了很多命令行/标志选项但没有成功..
答案 0 :(得分:2)
您应该将库称为:
LIBS += -lopencv_core243d
LIBS += -lopencv_imgproc243d
LIBS += -lopencv_highgui243d
由于-l
已在名称的开头插入 lib 。