我想要打印一个由预处理器生成的字符串:
cout << GITHASH << endl;
从命令行构建应用程序时,它的工作非常出色:
g++ -DGITHASH="\"dirty\"" app.cpp -o app.o
但是,如果我将这个宏放到Codeblocks的项目构建选项中的编译器定义设置中,我会得到以下错误:
错误:此范围内未定义“dirty”
有人知道如何在Codeblocks设置中正确定义这个宏吗?
我在Ubuntu 16.04上使用Codeblocks 16.01。
编辑:现在我想用我的项目的git描述来替换“dirty”。
GITHASH=\\"$(shell git describe --dirty --always --tags)\\"
你有什么想法吗?
编辑:
它可以与以下内容一起使用:
GITHASH=\\"`git describe --dirty --always --tags`\\"