CMake部分简单记录

2 篇文章 0 订阅
1 篇文章 0 订阅

CAMKE:

嵌入式


使用cmake要在每个源码文件下创建CMakeLists.txt。


cmake_minimum_required (VERSION 2.8)表明至少cmake版本2.8。

在其后必须设置编译器,否则不起作用,直接采用默认编译器编译。

SET(CMAKE_SYSTEM_NAME Linux)指定系统名。

SET(CMAKE_C_COMPILER "/home/gd9527/vmtool/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")指定编译器绝对路径。

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)一些相关的设置。

project (Demo)项目名称。

SET(CMAKE_SYSTEM_PROCESSOR arm)指定处理器名。

SET(CMAKE_CROSSCOMPILING TRUE)指定是交叉编译。

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -ggdb -Wall -Wextra -DNETDATA_INTERNAL_CHECKS=1 -DNETDATA_VERIFY_LOCKS=1 ${CXX_FORMAT_SIGNEDNESS} ${CXX_FORMAT_SECURITY} ${CXX_STACK_PROTECTOR} ${CXX_FLAGS_DEBUG}")设置编译选项

#-O0:关闭所有优化选项
#-O1:第一级别优化,使用此选项可使可执行文件更小、运行更快,并不会增加太多编译时间,可以简写为-O
#-O2:第二级别优化,采用了几乎所有的优化技术,使用此选项会延长编译时间
#-O3:第三级别优化,在-O2的基础上增加了产生inline函数、使用寄存器等优化技术
#-Os:此选项类似于-O2,作用是优化所占用的空间,但不会进行性能优化,常用于生成最终版本
#-ggdb:在可执行文件中包含可供GDB使用的调试信息
#-Wall:开启大部分警告提示
#-Wextra:对所有合法但值得怀疑的表达式发出警告

SET(TIMER_DIR ${PROJECT_SOURCE_DIR}/Timer)将项目文件下Timer文件路径重命名为TIMER_DIR;同理有SET(TASK_MAG_DIR ${PROJECT_SOURCE_DIR}/Task/TaskMag),将项目文件下Task文件夹中的TaskMag文件夹路径重命名为TASK_MAG_DIR。

add_subdirectory(${TIMER_DIR})添加子目录TIMER_DIR(此为前面重命名的路径),同理有add_subdirectory(Timer)以及add_subdirectory(${TASK_MAG_DIR})

include_directories(${TIMER_DIR})添加头文件。

aux_source_directory(. Main_File)查找当前目录下的所有源文件,并将名称保存到 Main_File 变量。

add_executable(MyOnceTry ${Main_File})指定生成目标MyOnceTry。

target_link_libraries(MyOnceTry Timer TaskMag Tlibpthread.so)添加链接库,由于linux的默认库不包括pthread,所以手动加入libpthread.so。


对于子文件下
include_directories(.)添加本文件夹下的头文件
aux_source_directory(. DIR_LIB_SRCS)查找当前目录下的所有源文件,并将名称保存到 DIR_LIB_SRCS 变量
add_library (Timer ${DIR_LIB_SRCS})生成链接库
target_link_libraries(Timer)添加链接库


在buid文件夹中cmake ..再操作。


相关demo下载链接点这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值