我没有问题链接动态opencv库,但我想要使用静态库,所以我重新选择了“生成共享库”选项未选中的OpenCV 2.3。我把我的.pro文件以下需要帮助链接在Windows上的Qt Creator中的静态OpenCV库
LIBS += "C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_calib3d231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_contrib231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_core231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_features2d231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_flann231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_gpu231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_imgproc231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_legacy231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_ml231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_objdetect231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_ts231.a" \
"C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_video231.a"
INCLUDEPATH += "C:\Program Files\openCV_static\opencv\build\install\include"
INCLUDEPATH += "C:\Program Files\openCV_static\opencv\build\install\include\opencv"
这是非常相似,我收到的时候我用的是动态库,除了在.dll文件。一个真正结束了.a文件,我把dll的(不是dll.a文件)在qt程序的输出目录中(所以程序可以找到它们并运行)。现在重点是我不需要这些dll,所以它们不再在我的程序的输出目录中(实际上它们不是用OpenCV构建的)。但是当我尝试构建我的程序时遇到这些错误:
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(cap_vfw.obj):cap_vfw.cpp:(.text$_ZN17CvVideoWriter_VFW5closeEv+0x13): undefined reference to `[email protected]'
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(cap_vfw.obj):cap_vfw.cpp:(.text$_ZN17CvVideoWriter_VFW5closeEv+0x25): undefined reference to `[email protected]'
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(cap_vfw.obj):cap_vfw.cpp:(.text$_ZN17CvVideoWriter_VFW5closeEv+0x37): undefined reference to `[email protected]'
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(cap_vfw.obj):cap_vfw.cpp:(.text$_ZN16CvCaptureCAM_VFW4openEi+0x6c): undefined reference to `[email protected]'
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(cap_vfw.obj):cap_vfw.cpp:(.text$_ZN16CvCaptureCAM_VFW4openEi+0xb7): undefined reference to `[email protected]'
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(cap_vfw.obj):cap_vfw.cpp:(.text$_ZN16CvCaptureAVI_VFW9grabFrameEv+0x29): undefined reference to `[email protected]'
.
.
.
.
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(grfmt_jpeg2000.obj):grfmt_jpeg2000.cpp:(.text$_ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x17b): undefined reference to `jas_stream_close'
C:\Program Files\openCV_static\opencv\build\install\lib\libopencv_highgui231.a(grfmt_jpeg2000.obj):grfmt_jpeg2000.cpp:(.text.startup._GLOBAL__sub_I_C__Program_Files_openCV_static_opencv_modules_highgui_src_grfmt_jpeg2000.cpp+0x4): undefined reference to `jas_init'
collect2: ld returned 1 exit status
mingw32-make.exe[1]: *** [release\trusion.exe] Error 1
mingw32-make.exe: *** [release] Error 2
23:21:10: The process "C:\MinGW\bin\mingw32-make.exe" exited with code 2.
Error while building project trusion (target: Desktop)
When executing build step 'Make'
我正在使用MinGW。使用用于构建opencv的相同工具链编译该项目。如上所述,使用动态库。不适用于静态库。
只是一个问题:如何做你设法用Qt支持构建opencv?我的构建不成功,因为它需要一个名为'qconfig.h'的文件,这个文件没有伴随我的Qt 4.6.3下载。你使用了哪个版本? – vsz 2012-04-07 16:22:06
@vsz对于迟到感到抱歉。我没有试图用qt支持构建opencv。我只是将opencv库导入到我正在编写的qt程序中。 – jzepeda 2012-04-18 02:48:28