codeblocks-MinGW-4.8.1+opencv3.0+cmake遇到的問題及解決辦法

首先設置環境變量,包含mingw的一些路徑,minGW路徑爲E:\CodeBlocks\MinGW

<span style="font-size:14px;">Include :E:\CodeBlocks\MinGW\include;
Lib:E:\CodeBlocks\MinGW\lib;
Path:E:\CodeBlocks\MinGW\bin;E:\CodeBlocks\MinGW\libexec\gcc\mingw32\4.8.1;E:\CodeBlocks\MinGW\mingw32\bin</span>

安裝cmake後如果缺少libiconv-2.dll,則將E:\CodeBlocks\MinGW\bin下的libiconv-2.dll拷貝到cmake的安裝路徑下bin目錄中

正常這樣generate後會出現一些錯誤,如下

錯誤1:

<span style="font-size:14px;">[ 44%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap
_dshow.cpp.obj
D:\opencv\sources\modules\videoio\src\cap_dshow.cpp:122:11: error: base class 's
truct IUnknown' has accessible non-virtual destructor [-Werror=non-virtual-dtor]

 interface IEnumPIDMap : public IUnknown
           ^
D:\opencv\sources\modules\videoio\src\cap_dshow.cpp:141:11: error: base class 's
truct IUnknown' has accessible non-virtual destructor [-Werror=non-virtual-dtor]

 interface IMPEG2PIDMap : public IUnknown
           ^
D:\opencv\sources\modules\videoio\src\cap_dshow.cpp:231:11: error: base class 's
truct IUnknown' has accessible non-virtual destructor [-Werror=non-virtual-dtor]

 interface ISampleGrabberCB : public IUnknown
           ^
D:\opencv\sources\modules\videoio\src\cap_dshow.cpp:245:11: error: base class 's
truct IUnknown' has accessible non-virtual destructor [-Werror=non-virtual-dtor]

 interface ISampleGrabber : public IUnknown
           ^
cc1plus.exe: some warnings being treated as errors
modules\videoio\CMakeFiles\opencv_videoio.dir\build.make:150: recipe for target
'modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj' failed
mingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dsho
w.cpp.obj] Error 1
CMakeFiles\Makefile2:2719: recipe for target 'modules/videoio/CMakeFiles/opencv_
videoio.dir/all' failed
mingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2

makefile:136: recipe for target 'all' failed
mingw32-make: *** [all] Error 2</span>

則需要到sources目錄下搜索OpenCVCompilerOptions.cmake,將裏面的

add_extra_compiler_option(-Werror=non-virtual-dtor)前面加一個# 即修改爲# add_extra_compiler_option(-Werror=non-virtual-dtor)

錯誤2:

<span style="font-size:14px;">Linking CXX shared library ....\bin\libopencv_core300.dll c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lRunTmChk collect2.exe: error: ld returned 1 exit status modules\core\CMakeFiles\opencv_core.dir\build.make:1257: recipe for target 'bin/libopencv_core300.dll' failed mingw32-make[2]: * [bin/libopencv_core300.dll] Error 1 CMakeFiles\Makefile2:1325: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed mingw32-make[1]:[modules/core/CMakeFiles/opencv_core.dir/all] Error 2 Makefile:136: recipe for target 'all' failed mingw32-make: ** [all] Error 2</span>
則需要在generate之前去掉WITH-IPP選項


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章