Chinaunix首页 | 论坛 | 博客
  • 博客访问: 280194
  • 博文数量: 42
  • 博客积分: 485
  • 博客等级: 下士
  • 技术积分: 482
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-26 19:33
文章分类
文章存档

2017年(1)

2016年(4)

2015年(8)

2014年(3)

2013年(4)

2012年(3)

2011年(19)

我的朋友

分类: LINUX

2017-01-10 11:58:25

最近想移植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) |
给主人留下些什么吧!~~