cmake常用命令解析

关键字

  • project可以⽤来指定⼯程的名字和⽀持的语⾔,默认⽀持所有语⾔。eg. project(HELLO)project(HELLO CXX)
  • set⽤来显式指定变量,eg. set(SRC_LIST main.cpp)
  • message向终端输出用户自定义的信息,主要包含三种信息:
    • SEND_ERROR,产⽣错误,⽣成过程被跳过
    • SATUS,输出前缀为—的信息
    • FATAL_ERROR,⽴即终⽌所有 cmake 过程
    • eg. message(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})
  • add_executable⽣成可执⾏⽂件,eg. ADD_EXECUTABLE(hello ${SRC_LIST}) ⽣成的可执⾏⽂件名是hello,源⽂件读取变量SRC_LIST中的内容,也可以直接写ADD_EXECUTABLE(hello main.cpp)
  • add_subdirectory⽤于向当前⼯程添加存放源⽂件的⼦⽬录,并可以指定中间⼆进制和⽬标⼆进制存放的位置。eg. ADD_SUBDIRECTORY(src bin) 将src⼦⽬录加⼊⼯程并指定编译输出(包含编译中间结果)路径为bin⽬录;如果不进⾏ bin ⽬录的指定,那么编译结果(包括中间结果)都将存放在build/src ⽬录。
  • include_directories可以⽤来向⼯程添加多个特定的头⽂件搜索路径,路径之间⽤空格分割。eg. INCLUDE_DIRECTORIES(/usr/include/hello)
  • set指令重新定义executable_output_path和library_output_path变量,来指定最终的⽬标⼆进制的位置。
    • SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
    • SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
  • target_link_libraries(可执行文件名 链接库路径)需要放在add_executable之后,用于指定exe文件生成后,该文件要和什么动态库进行链接。eg. target_link_libraries(motionaveraging /home/dz/cnpy/build/libcnpy.so)

其他

  • 变量使⽤${}⽅式取值,但是在 IF 控制语句中是直接使⽤变量名
  • 指令(参数 1 参数 2…) 参数使⽤括弧括起,参数之间使⽤空格或分号分开
  • 指令是⼤⼩写⽆关的,参数和变量是⼤⼩写相关
  • SET(SRC_LIST main.cpp) 可以写成SET(SRC_LIST “main.cpp”),如果源⽂件名中含有空格,就必须要加双引号
  • ADD_EXECUTABLE(hello main) 后缀可以不写,它会⾃动去找.c和.cpp,最好不要这样写,可能会有这两个⽂件main.cpp和main
  • 要创建子目录,则每一个目录下都需要有一个CMakeLists.txt说明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zeeq_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值