OPENCV2.3的交叉编译

本文介绍如何使用CMake进行OpenCV的嵌入式移植,包括必要的宏定义设置,如CMAKE_SYSTEM_NAME、CMAKE_C_COMPILER等,以及如何通过配置文件或cmake-gui工具完成整个编译流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Opencv的嵌入式移植:



Opencv使用cmake作为生成makefile的工具。下面学习一下cmake相关的部分。

Cmake像这样定义一个宏定义:

SET(macronamemacarovalue)


有几个宏定义,是交叉编译时必须要定义的,例子:

#this one is important

SET(CMAKE_SYSTEM_NAMELinux)

#thisone not so much

SET(CMAKE_SYSTEM_VERSION1)

#specify the cross compiler

SET(CMAKE_C_COMPILER /home/zzg/CodeSourcery/Sourcery_G++_Lite/bin/arm-linux-gcc)

SET(CMAKE_CXX_COMPILER/home/zzg/CodeSourcery/Sourcery_G++_Lite/bin/arm-linux-g++)

#where is the target environment

SET(CMAKE_FIND_ROOT_PATH/home/zzg/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc)

SET(CMAKE_LIBRARY_PATH /home/zzg/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc/lib)

#search for programs in the build host directories

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAMNEVER)

#for libraries and headers in the target directories

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARYONLY)

SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDEONLY)


其中:

CMAKE_SYSTEM_NAME 指明目标操作系统类型,交叉编译的时候一般为Linux

CMAKE_SYSTEM_VERSION指明本次编译生成的版本,可选。

CMAKE_C_COMPILER 指明你用于交叉编译的C编译器

CMAKE_CXX_COMPILER指明你用于交叉编译的C++编译器

CMAKE_FIND_ROOT_PATH指明你的交叉编译链的根路径。在这个根路径下应该有个lib文件夹保存这用于交叉编译的库文件。


其他的宏定义保持不变即可。


你可以将上述的宏定义写为一个交叉编译配置文件,例如arm.cmake,然后在命令行调用cmake指令的时候,-DCMAKE_TOOLCHAIN_FILE 指明这个交叉编译配置文件,例如:


cmake-D CMAKE_TOOLCHAIN_FILE ~/arm.cmake ../


更简单的方法,可以使用cmake-gui工具:




指明源码路径和目标文件夹路径。然后点击“Configure”,弹出窗口:


选择第三项:

specifytoolchain file for cross-compiling

选择你写的交叉编译配置文件即可。





然后修改出现的各种宏配置。最后点击generate,生成makefile,万事大吉了~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值