CMake arm linux交叉编译CMakeLists.txt示例


set(tool_path /usr/local/arm/opt/EmbedSky/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf)

set(CMAKE_C_COMPILER ${tool_path}/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${tool_path}/bin/arm-linux-gnueabihf-g++)

set(CMAKE_CROSSCOMPILING TRUE)
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR arm)

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

#project
cmake_minimum_required(VERSION 2.6)
project(hello)

#var
set(target_name hello)
set(target_src )
set(lib_name src)
set(sub_src ./src)

#include
include_directories(${sub_src})

#src
aux_source_directory(. target_src)
add_subdirectory(${sub_src})


#bin
add_executable(${target_name} ${target_src})


#link
target_link_libraries(${target_name} ${lib_name})



 

这个脚本实现了使用arm-linux-gnueabihf-来编译一个hello.c的文件,最终生成的可执行文件也是hello,hello.c调用了./src文件夹下的一个foo.c里面的函数,这个函数的声明在foo.h,跟foo.c在同一个文件夹,这个模块生成的lib名字叫src,在连接hello的时候被调用

第1行 交叉编译器的路径是:/usr/local/arm/opt/EmbedSky/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf

第4,5行 指定编译器的可执行文件路径

第11行 指定查找库的路径

第28行 指定hello.c查找头文件的路径

第32行 包含子文件路径

第36行 指定生成可执行文件名hello

第40行 连接hello的时候依赖库libsrc

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值