如何在Windows上的宏中使用引号

How to use quotes in a macro on Windows

本文关键字:Windows      更新时间:2023-10-16

我正在尝试编译此代码:

std::string myString(...)
if (myString == __MY_MACRO__) { ... }

在我的蚂蚁脚本中,我有:

<property unless:set="myprop" name="myprop" value="foo" />
...
<compilerarg value='-D__MY_MACRO__="${myprop}"' />

它在Linux上编译,但在我收到以下错误的Windows上没有编译:

[cc] <command-line>:0:27: error: 'foo' was not declared in this scope
[cc] XXX.cpp:X:Y: note: in expansion of macro '__MY_MACRO__'
[cc]          if (myString == __MY_MACRO__) {

我也尝试了

<compilerarg value="-D__MY_MACRO__=&quot;${myprop}&quot;" />

但结果相同。

谢谢!

找到了一个解决方案:

<compilerarg value='-D__MY_MACRO__=""${myprop}""' />