我已经使用 MinGW 和 CMake 静态编译了 OpenCV 2.4.1 而没有错误。我检查了With_QT
我只是取消选中BUILD_SHARED_LIBS
并继续 mingw32-make
and mingw32-make install
。
它的构建没有错误,最终我在 opencv 的 lib 文件夹中有一堆.a
文件。
但是在设置LIBS and INCLUDEPATH
.pro 文件的参数并在 Qt 中运行一个简单的应用程序后,我遇到了错误。
我还将以下行添加到.pro
文件中:
CONFIG += -static -static-libgcc
我提供了最后一行错误:
F:\OpenCV2.4.1\opencv-static\install\lib\libopencv_highgui241.a(grfmt_jpeg2000.cpp.obj):grfmt_jpeg2000.cpp:(.text$_ZN2cv13Jpeg2KDecoder10readHeaderEv+0x4f):
undefined reference to `jas_image_decode' collect2: ld returned 1
exit status mingw32-make[1]: ***
[release\test.exe] Error 1
mingw32-make: *** [release] Error 2 The process "C:/ming44/bin/mingw32-make.exe" exited with code %2. Error while building project test (target: Desktop) When executing build step 'Make'
更新
我发现错误只是在我调用highgui.hpp
方法时。像我使用时出现以下错误cv::imshow()
:
F:\OpenCV2.4.1\opencv-static2\install\lib\libopencv_highgui241.a(window_w32.cpp.obj):window_w32.cpp:(.text$_ZL17icvCreateTrackbarPKcS0_PiiPFviEPFviPvES4_+0x5e1): undefined reference to `CreateToolbarEx@52' collect2: ld returned 1
exit status mingw32-make[1]: *** [release\test.exe] Error 1
mingw32-make: *** [release] Error 2
谁能帮我解决这个问题。
谢谢