环境:
PC系统: ubuntu16.04LTS
目标开发板:itop4412
交叉编译器:arm-none-linux-gnueabi-gcc(arm-2009q3)
step1: 准备opencv3.4源代码
step2: opencv3.4目录下创建子目录:build-arm
step3:修改opencv3.4根目录下的CMakeLists.txt文件
在开头加入:备注:此处已经提前交叉编译了zlib库
set(CMAKE_C_COMPILER "arm-none-linux-gnueabi-gcc")
set(CMAKE_C_COMPILER_AR "arm-none-linux-gnueabi-ar")
set(CMAKE_CXX_COMPILER "arm-none-linux-gnueabi-g++")
set(CMAKE_INSTALL_PREFIX "/usr/local/lib/arm/opencv-arm")
INCLUDE_DIRECTORIES(/usr/local/lib/arm/zlib/include)
LINK_DIRECTORIES(/usr/local/lib/arm/zlib/lib)
step4: 在build-arm目录下运行:cmake …
结果如下:
编译器和安装路径设置ok
step5: make
结果:
结果出错,原因不明,添加:SET(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c++11 -pthread”),结果说
原因: itop4412提供的编译器是2009的(gcc4.4),不支持C++11,进而怀疑交叉编译器版本太低,经查询得知到了gcc4.7版才支持C++11。
解决办法: 自己联编交叉编译器,制作属于自己的新版交叉编译器以尝试解决opencv3.4编译问题,详见《交叉编译opencv3.4之创建交叉编译工具链(二)》,待续。。。。。。