安裝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檔案,