最近想移植opencv到i.mx6上使用,过程中遇到了几个问题,记录如下:
1、移植opencv2.4.12,使用cmake-gui配置交叉编译器,arm-poky-linux-gnueabi-g++配置时有问题,应该是没有设置硬浮点编译选项,但cmake-gui找不到配置编译选项的地方,后使用命令行方式配置,cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../ ,并修改arm-gnueabi.toolchain.cmake文件中的相应的编译器和编译选项,可以产生Makefile;
2、但编译时会出错现以下错误:
Linking C static library ../lib/libzlib.a
Error running link command: No such file or directory
make[2]: *** [3rdparty/lib/libzlib.a] 错误 2
make[1]: *** [3rdparty/zlib/CMakeFiles/zlib.dir/all] 错误 2
make: *** [all] 错误 2
查看编译的中间文件link.txt,发现是链接静态库的ar工具未设置成功(CMAKE_AR-NOTFOUND)。
So: 解决办法是,在arm-gnueabi.toolchain.cmake中加入set(CMAKE_AR $(TOOLS_DIR)/build/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ar CACHE FILEPATH "Archiver")。
需要注意的是,再次cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../之前,必须把当前目录下原来创建好的cmake相关文件全部删除!
ps: cmake后make时若想打印编译过程,命令为: make VERBOSE=1
阅读(14078) | 评论(0) | 转发(0) |