繁体   English   中英

使cmake传递命令行变量到编译器

[英]Make cmake pass command line variable to compiler

我有以下代码:

int main() {
#ifdef COMMIT_VERSION
   cout << "app version: " << COMMIT_VERSION << endl;
#endif
}

我想调用cmake,以便它将在命令行上定义的COMMIT_VERSION变量传递给g ++,从而传递给我的应用程序。 例如,在调用之后:

cmake -WHAT_IS_THE_OPTION_NAME COMMIT_VERSION='"Hello Version"'
make
./a.out

产生输出

app version: Hello Version

您可以使用-D <var>:<type>=<value>选项在cmake脚本中添加定义( typevalue是可选的),如下所示:

cmake -D COMMIT_VERSION='"whatever version here"' ...

然后,在脚本内部,您可以使用add_definitions函数将定义传递给g ++:

add_definitions(-DCOMMIT_VERSION=${COMMIT_VERSION})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM