ubuntu18下用cmake交叉工具arm-linux-gnuebihf编译应用程序
camke安装
这里笔者安装的版本是3.10,读者自行安装
创建目录和文件名
只需要创建后面三个文件,名字如图
1main.c函数
"
int main()
{
printf("Hello\n");
return 0;
}
2CMakeLists.txt内容
#设置目标系统名字
set(CMAKE_SYSTEM_NAME Linux)
#设置目标处理器架构
set(CMAKE_SYSTEM_PROCESSOR arm)
# 指定编译器的 sysroot 路径
# set(TOOLCHAIN_DIR /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots)
# set(CMAKE_SYSROOT ${TOOLCHAIN_DIR}/cortexa7hf-neon-poky-linux-gnueabi)
# 指定交叉编译器 arm-linux-gcc 和 arm-linux-g++
set(CMAKE_C_COMPILER /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++)
# 为编译器添加编译选项
# set(CMAKE_C_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7")
# set(CMAKE_CXX_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
project(HELLO) #设置工程名称
add_executable(hello ./main.c)
3sh脚本
#!/bin/sh
mkdir build
cd build/
cmake ..
make -j8
编译方法
在当前目录执行sh脚本,给shell脚本最高权限chmod 777 build.sh
查看文件类型