我们平常使用CMake时,主要是在x86或x86_64平台上,其实CMake在2.6版本后就已经支持交叉编译了,下面就来看下如何使用CMake进行Arm Linux程序的交叉编译。
一 建立工程
按照如下结构体建立一个简单工程
main.c内容如下,
#include
int main(void)
{
printf("hello world\n");
return 0;
}
CMakeLists.txt内容如下,
cmake_minimum_required(VERSION 3.5)
project(demo)
add_executable(main main.c)
这是常规的工程,编译的话只要cd到build目录下执行cmake .. && make就可以了。
二 交叉编译
现在希望最终编译的程序是运行在arm linux系统上的,这就需要交叉编译。
1. 设置系统和工具链
对于交叉编译,CMake并不知道目标系统是什么,所以需要设置一些CMake变量来告知CMake,
CMAKE_SYSTEM_NAME:即目标系统名,这里是Linux
CMAKE_SYSTEM_PROCESSOR :目标系统的处理器名&