安装Cmake
sudo snap install cmake --classic
添加CMake交叉编译
一 建立工程
普通编译
按照如下结构体建立一个简单工程,建一个文件夹build,里面新建一个main.c
main.c内容如下,
#include <stdio.h>
int main(void)
{
printf("hello world\n");
return 0;
}
在build工程文件建一个CMakeLists.txt。
CMakeLists.txt内容如下,
cmake_minimum_required(VERSION 3.2)
project(demo)
add_executable(main main.c)
这是常规的工程,编译的话只要cd到build目录下执行cmake .
如果有No CMAKE_CXX_COMPILER could be found.报错
执行
sudo apt-get update
sudo apt-get install -y build-essential
cmake .
编译完成
然后在终端下输入make并回车,生成main
elf文件
如果想重新生成main,输入make clean就可以删除main这个elf文件
二 交叉编译
在build里建一个CMakeLists.txt
内容如下
set(CMAKE_SYSTEM_NAME Linux)
set(TOOLCHAIN_PATH "/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin")
set(CMAKE_C_COMPILER /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++)
PROJECT(HELLO) --------------------添加一个项目
SET(SRC_LIST main.c) ----------------main.c变量,SRC_LIST变量名
ADD_EXECUTABLE(hello ${SRC_LIST}) --------------------生成可执行文件
使用如下命令编译
cmake .
ok后再执行make,就可以生成main的elf文件,