按照网上的教程在编译opencv时,除了网上教程指出的一般错误之外,会出现一些如下错误:
1.报错:undefined reference to “dlopen”
undefined reference to “dlysm”
原因:
由于dlopen被设计成C-style,所以在使用g++编译器的时候,需要在CMakeCache.txt文件中添加:
CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl
2.报错:xxx.cpp internal compiler error: in vect_transform_stmt,at tree-vect-stmts.c….
原因:用32位的编译器在64位机上编译(个人理解),属GCC的bug,换编译器试试。
3.报错:”……Could not read symbols:Bad value”……
原因:低版本Gcc编译的.so,由于编译器版本不兼容导致;32bit OS环境下编译的库移到64位下出错:
修改:…/opencv_build(cmake时指定的编译文件的目录)/3rdparty/zlib/CMakeFiles/Zlib.dir/flags.make,将C_FLAGS= -W -Wall替换成C_FLAGS= -03 -fPIC -W -Wall
-fPIC:告诉编译器产生与位置无关的代码,代码中无绝对地址,全是相对地址。

注:本人水平有限,如有错误还望留言指导

Logo

更多推荐