cmake简要

变量

  • 定义
set(var value)

set(SRC_LIST main.c frame.c)
  • 使用:
${var}

add_executable(main_bin ${SRC_LIST})

if判断中判断变量存在直接使用var不用${var}

target目标

  • cmake目标
# 可执行文件
add_executable(main_bin ${SRC_LIST})
# 动态链接库
add_library(main_bin SHARED ${SRC_LIST})
# 静态链接库
add_library(main_bin STATIC ${SRC_LIST})
  • make目标文件
# 设置最终可执行目标文件的输出目录
#set(EXECUTABLE_OUTPUT_PATH ${CMAKE_INSTALL_PREFIX}/bin)
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)
# 设置最终动态库文件的输出目录
#set(LIBRARY_OUTPUT_PATH ${CMAKE_INSTALL_PREFIX}/lib)
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib)
# 设置最终静态库文件的输出目录
#set(ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib)
  • make install安装
# 安装位置
cmame -DCMAKE_INSTALL_PREFIX=/home/output

install(TARGETS main RUNTIME DESTINATION bin)
install(TARGETS main LIBRARY DESTINATION lib)
install(TARGETS main ARCHIVE DESTINATION lib)
install(FILES ${HEAD_LIST} DESTINATION include)
  • 向当前工程添加子目录
add_subdirectory(source_dir  [binary_dir])
  • 搜集一个目录下所有源文件存储在一个变量
aux_source_directory(${PROJECT_SOURCE_DIR}/src/log/ log)
  • 依赖头文件搜索路径
include_directories(${PROJECT_SOURCE_DIR}/src/config/)
  • 依赖非标准库文件搜索路径
link_directories(${CMAKE_INSTALL_PREFIX}/lib)
  • 添加需要链接的共享库
target_link_libraries(main log)

全局变量

  • 项目工程
project(projectname [CXX] [C] [Java])

PROJECT_BINARY_DIR PROJECT_SOURCE_DIR
projectname_BINARY_DIR projectname_SOURCE_DIR
  • 编译器版本
cmame -DCMAKE_C_COMPILER=/usr/local/bin/gcc
或set(CMAKE_C_COMPILER "/usr/local/bin/gcc")
  • 编译器编译选项
set(CMAKE_C_FLAGS -Wall -Werror)
add_compile_options(-Wall -Werror)
# 添加编译选项
add_definitions(-Dtest -Daaa)

调试

message打印

message("msg ${var}" ..)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值