gpt4 book ai didi

c++ - 使cmake将命令行变量传递给编译器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:26 47 4
gpt4 key购买 nike

我有以下代码:

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})

关于c++ - 使cmake将命令行变量传递给编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25207619/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com