Codeblocks宏

4

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

cout << GITHASH << endl;

从命令行构建应用程序时,它的工作非常出色:

g++ -DGITHASH="\"dirty\"" app.cpp -o app.o

但是,如果我将这个宏放到Codeblocks的项目构建选项中的编译器定义设置中,我会得到以下错误:

错误:此范围内未定义“dirty”

project build options

有人知道如何在Codeblocks设置中正确定义这个宏吗?

我在Ubuntu 16.04上使用Codeblocks 16.01。

编辑:现在我想用我的项目的git描述来替换“dirty”。

GITHASH=\\"$(shell git describe --dirty --always --tags)\\"

你有什么想法吗?

编辑:

它可以与以下内容一起使用:

GITHASH=\\"`git describe --dirty --always --tags`\\"

它在我的系统上完美地运行,使用的是CodeBlocks 16.01和Win10操作系统。 - ABcDexter
1
你尝试过使用GITHASH=\"dirty\"吗? - user3161880
1
@user3161880 谢谢,它有效! - alex
1个回答

3

请确保以下代码的格式:

GITHASH="\"dirty\""

等号(=)前后不应有空格。

如果需要,您也可以尝试以下写法:GITHASH=\"dirty\"GITHASH=\\"dirty\\"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接