Cmake交叉编译OpenCV

开发环境

操作系统: Ubuntu16.04

开发板: i.MX6ULL Linux阿尔法开发板

交叉编译工具: gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf

因为需要做opencv的qt应用移植到开发板上,在这里需要交叉编译opencv。官方提供的是cmake源码编译,网上搜到的解决方案都是用cmake-gui应用配置交叉编译器,这里想直接写一个cmake脚本来编译。

交叉编译脚本文件

一开始想着直接暴力修改CMakeLists.txt的编译器配置,太麻烦了,觉得肯定有其他办法。找到了CMake交叉编译文档

在opencv目录下创建一个imx6ull.cmake脚本,准备在build目录中使用这个脚本。

cmake脚本如下

set(CMAKE_SYSTEM_NAME Linux)

set(TOOLCHAIN_DIR  /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf)

# 交叉编译器
set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gnueabihf-g++)
set(CMAKE_EXE_LINKER_FLAGS "-lpthread -lrt -ldl")

# 指定交叉编译器环境
set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR}/bin)

# 修改查找头文件和库文件还有其他程序的行为
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

# 指定自定义安装路径
set(CMAKE_INSTALL_PREFIX <自定义指定安装路径, 否则默认安装到/usr下>)

问题

在cmake脚本指定安装路径的时候,打开install_manifest.txt发现路径被安装到了/usr/local下,但是我已经在脚本中指定了安装的目录,没有生效。最后我直接在执行cmake的时候从命令行传递安装路径宏进去。

cmake -DCMAKE_TOOLCHAIN_FILE=../imx6ull.cmake -DCMAKE_INSTALL_PREFIX=xxx/opencv-install/ ..

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值