我想打印一个由预处理器生成的字符串:

cout << GITHASH << endl;

从命令行构建应用程序非常有效:
g++ -DGITHASH="\"dirty\"" app.cpp -o app.o

但是,如果我将此宏放在项目构建选项中的代码块的编译器定义设置中,则会出现以下错误:



c&#43;&#43; - 代码块宏-LMLPHP

有谁知道如何在代码块设置中正确定义这个宏?

我在 ubuntu 16.04 上使用代码块 16.01。

编辑:
现在我想用我的项目的 git 描述替换“脏”。
GITHASH=\\"$(shell git describe --dirty --always --tags)\\"

任何想法?

编辑:

它适用于:
GITHASH=\\"`git describe --dirty --always --tags`\\"

最佳答案

确保
GITHASH="\"dirty\""
完全按原样书写,=(等号)之前或之后不应有空格。

或者,尝试编写 GITHASH=\"dirty\"GITHASH=\\"dirty\\"

关于c++ - 代码块宏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45455228/

10-11 18:51