欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

cmake (2)指令说明

发布时间:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 cmake (2)指令说明 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 语法规则

  • 变量使用${}方式取值,但是在 IF 控制语句中是直接使用变量名
  • 指令(参数 1 参数 2…)
  • 参数使用括弧括起,参数之间使用空格或分号分开。
    eg. 以 ADD_EXECUTABLE 为例,如果存在另外一个 func.c 源文件,可写成:
    ADD_EXECUTABLE(hello main.c func.c)或者
    ADD_EXECUTABLE(hello main.c;func.c)
  • 指令是大小写无关的,参数和变量是大小写相关的

1.1 项目名称PROJECT()

这个指令隐式的定义了两个 cmake 变量:
_BINARY_DIR 以及_SOURCE_DIR,

PROJECT_BINARY_DIR 和 PROJECT_SOURCE_DIR变量,他们的值分别跟 HELLO_BINARY_DIR 与 HELLO_SOURCE_DIR 一致

eg.

PROJECT(HELLO) #项目名称 会引入两个变量: HELLO_BINARY_DIR, HELLO_SOURCE_DIR 同时也会定义两个等价的变量: PROJECT_BINARY_DIR, PROJECT_SOURCE_DIR

因为采用的是内部编译,两个变量目前指的都是工程所在路径/backup/cmake/t1,

1.2. 加入文件 AUX_SOURCE_DIRECTORY()

eg.
#把当前目录(.)下所有源代码文件和头文件加入变量SRC_LIST
AUX_SOURCE_DIRECTORY(. SRC_LIST)

1.3. set 指令用来显式定义变量

SET 指令的语法是:
SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
现阶段,你只需要了解 SET。
eg. 我们用到的是 SET(SRC_LIST main.c),如果有多个源文件,也可以定义成:
SET(SRC_LIST main.c t1.c t2.c)

1.4. message

MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display”…)

这个指令用于向终端输出用户定义的信息,包含了三种类型:

  • SEND_ERROR 产生错误,生成过程被跳过。
  • SATUS 输出前缀为—的信息
  • FATAL_ERROR 立即终止所有 cmake 过程

总结

以上是生活随笔为你收集整理的cmake (2)指令说明的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。