能否将CMake-GUI中设置的所有变量导出为命令行字符串?
当然可以!CMake提供了很方便的方式把CMake-GUI里配置的所有变量导出成能直接用的命令行字符串,下面给你两种实用的方法:
方法1:从已配置的构建目录导出(最常用)
如果你已经用CMake-GUI完成了配置(也就是生成了Makefile或者VS工程这类构建文件),直接打开终端进入对应的构建目录,运行下面的命令:
cmake -LA -N .
参数解释:
-L:列出所有非高级变量-LA:列出所有变量(包括那些默认隐藏的高级变量)-N:仅查询当前缓存的变量,不会重新触发项目配置,速度更快
运行后会输出一堆VAR_NAME=VALUE格式的内容。如果想直接转换成CMake命令行参数的格式(也就是-DVAR_NAME=VALUE),还可以用一行shell命令自动处理:
cmake -LA -N . | grep -E '^[A-Z_]+=' | sed 's/^/-D/' | tr '\n' ' '
这个命令会自动过滤出变量行,给每个变量加上-D前缀,再把所有行拼接成一个单行的字符串,复制下来就能直接用在其他CMake命令里了,比如:
cmake /path/to/source -DCMAKE_BUILD_TYPE=Release -DENABLE_FEATURE_X=ON ...
方法2:从CMake-GUI的配置日志提取
如果你不想用终端命令,也可以直接看CMake-GUI的配置日志:
- 在CMake-GUI里点击「Configure」后,切换到「Output」标签页
- 日志里会显示CMake实际执行的配置命令,里面包含了你在GUI里设置的所有
-D参数 - 直接把这部分命令里的参数复制出来就行,不过这种方式可能不会包含所有自动生成的缓存变量,更适合提取你手动设置的那些变量
需要注意的是,如果你只是在CMake-GUI里填了变量但还没点击Configure,建议先点击一次Configure生成缓存,这样才能确保所有变量都被正确记录下来哦。
内容的提问来源于stack exchange,提问作者Humam Helfawi
相关产品推荐
相关产品推荐

