CMake交叉编译的设置

根据官方资料整理,翻译,官方地址:http://www.cmake.org/Wiki/CMake_Cross_Compiling

修改CMakelist.txt

1.设置系统和工具链

CMake无法预知你交叉编译的目标系统,所以设置一些参数。

CMAKE_SYSTEM_NAME     必须设置

CMAKE_SYSTEM_VERSION     可选

CMAKE_SYSTEM_PROCESSOR   可选

CMAKE_C_COMPILER     必选填写,C 交叉编译器,比如:/root/SDK/gcc/bin/mipsel-openwrt-linux-g++,这里最好全路径否则,官方资料说明,如果写全路径,不但指定了编译器,同时还会根据给出的路径去搜索其他需要用到的工具,像binutils(binary utilities 二进制实用程序,提供对二进制的地城处理功能,如链接,组合或者解析ELF件),linker(连接器)。
CMAKE_CXX_COMPILER  C++交叉编译器,如果是GUN 编译器,两者只要设置其中一个就可以了,前提是前面设置了全路径,CMake会通过上面设置C交叉编译的路径去搜索C++交叉编译器路径。

CMake加载相关文件的秩序如下:

  • Platform/${CMAKE_SYSTEM_NAME}.cmake (强制)
  • Platform/${CMAKE_SYSTEM_NAME}-<compiler>.cmake (可选)
  • Platform/${CMAKE_SYSTEM_NAME}-<compiler>-${CMAKE_SYSTEM_PROCESSOR}.cmake (可选)
意思就是说,CMake会去执行上面路径下面的*.cmake文件。跟make类似会去搜索子目录下面的makefile.

<compiler>是一个编译器的名称,可以是gcc,cl或者是编译测试源文件的编译器ID.

对测试的主机系统(运行CMake的机器),有些参数是自动指定的。

  • CMAKE_HOST_SYSTEM_NAME
  • CMAKE_HOST_SYSTEM_VERSION
  • CMAKE_HOST_SYSTEM_PROCESSOR
  • CMAKE_HOST_SYSTEM

交叉编译器编译主机系统和目标系统的设置的参数是不同的,大部分情况你只是想要交叉编译目标系统的程序,不用CMAKE_SYSTEM_XX可以编译出两者的程序。

通过这些参数的正确设置,CMake将通过交叉编译器编译程序,在CMakeLists.txt你仍然可以使用cmake_system_xxx测试变量为您构建的系统。简单的交叉编译环境就这样配置完成。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值