cmake常用命令解释及例子

cmake常用命令解释

cmake命令不分大小写

cmake_minimum_required()

  • 含义:指定需要的cmake的最低版本
  • 例子:cmake_minimum_required(VERSION 2.6)

project()

  • 含义:指定项目名称
  • 例子:project(hello)

INCLUDE_DIRECTORIES()

  • 含义:指定头文件目录
  • 例子:INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include),
  • ${PROJECT_SOURCE_DIR}是cmake的内置变量,代表项目目录

AUX_SOURCE_DIRECTORY()

  • 含义:添加源文件所在目录,即.cpp或.c所在目录
  • 例子:AUX_SOURCE_DIRECTORY(${PROJECT_SOURCE_DIR}/src SRC_LIST)
  • 使用时要指定赋值的变量,即把SEC_LIST赋值为所有源文件的值(a.cpp b.cpp …)

add_executable()

  • 含义:添加可执行目标
  • 例子:add_executable(cmake_test ${SRC_LIST}),注意后面需要加上依赖的.cpp或.c文件列表

INSTALL()

  • 含义:指定添加可执行目标要安装的目录
  • 例子:INSTALL(TARGETS main DESTINATION /home/xxx/Desktop),将可执行文件安装在桌面

target_link_libraries()

  • 含义:为可执行目标链接库文件
  • 例子:target_link_libraries(main PRIVATE pthread)
  • 配合find_package()使用味道更佳

find_package()

  • 含义:找到所需库的package
  • 例子:find_package(unofficial-concurrentqueue CONFIG REQUIRED)
  • 有CONFIG MODULE模式(细节可以去官网查找)

LINK_LIBRARIES()

  • 含义:链接可执行目标文件需要的库
  • 例子:LINK_LIBRARIES("/opt/MATLAB/R2012a/bin/glnxa64/libeng.so")
  • 需要使用绝对路径

link_directories()

  • 含义:指定链接库目录
  • 例子:link_directories(/home/ubuntu/xxx/Hell0)

add_subdirectory()

  • 含义:添加子目录,注意这里的子目录指的是项目的一个需要独立编译的模块(应该包含CMakeLists.txt)
  • 例子:add_subdirectory(unit_test)

ENABLE_TESTING()

  • 含义:添加测试命令
  • 例子:ENABLE_TESTING() ADD_TEST(NAME SimpleTest COMMAND main)
  • make test,测试程序是否正常执行

ADD_CUSTOM_TARGET()

  • 含义:增加客制化命令make
  • 例子:ADD_CUSTOM_TARGET(run COMMAND main)
  • make run运行main

message

  • 含义:打印消息
  • 例子:message([] “message to display” …),mode要自己指定,比如INFO,WARNING等
发布了80 篇原创文章 · 获赞 68 · 访问量 7548

猜你喜欢

转载自blog.csdn.net/weixin_44048823/article/details/103093331
今日推荐