cmake 配置交叉编译工作记录

CMAKE 交叉编译配置

本文作为cmake配置交叉编译过程记录!

  • 测试工程建立
  • CMakeCache.txt文件编写
  • cmake_install.cmake 配置文件编写
  • cmake_build

测试工程

使用简单的的命令行:

$mkdir arm_cmake #创建测试文件夹
$vim hello.c     #创建测试源文件

编写CMakeCache.txt

cmake_minimum_required(VERSION 2.8)

project(hello C)
add_executable(${PROJECT_NAME} "hello.c")

编写cmake_install.cmake

set(CMAKE_SYSTEM_NAME Linux)

set(BINUTILS_PATH "/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf")
set(CMAKE_INSTALL_RPATH "/home/cage/work/arm_cmake")

set(TOOLCHAIN_PREFIX arm-linux-gnueabihf-)

set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc )
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++)

set(CMAKE_FIND_ROOT_PATH ${BINUTILS_PATH})
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)

运行cmake

命令行 1

$cd arm_cmake 
$mkdir build
$cd  build
$cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gcc-toolchain.cmake ..
$cmake --build .

打印生成文件属性

$file hello 
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=4a85afb0585242a2414fc6c73f58f0e699122f37, not stripped

命令行 2

$cd arm_cmake 
$mkdir build
$cd  build
$cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gcc-toolchain.cmake ..
$make

cmake在build文件夹成了Makefile,使用make命令是一样的效果。

通过cmake-gui图像界面生成Makefile同样能达到目的:
以下贴下图像界面的截图:

cmake 配置交叉编译工作记录_第1张图片

cmake 配置交叉编译工作记录_第2张图片
cmake 配置交叉编译工作记录_第3张图片
通过cmake-gui在build文件夹生成了Makefile,继续前面的步骤就可以!

你可能感兴趣的:(cmake-使用)