Visual studio 2015 如何在nmake中转义双引号
我试图通过MS Visual Studio 2013+中的nmake脚本,通过Visual studio 2015 如何在nmake中转义双引号,visual-studio-2015,visual-studio-2013,nmake,Visual Studio 2015,Visual Studio 2013,Nmake,我试图通过MS Visual Studio 2013+中的nmake脚本,通过/D标志将字符串文本传递给编译器。基本模式是: CPPFLAGS=/DSOME_STRING_VAR="asdf" main.exe: main.cpp $(CPP) $(CPPFLAGS) # ... 在main.cpp中,我希望能够执行以下操作: const char *some_string_var = SOME_STRING_VAR; main.cpp(271) : error C2065: 'a
/D
标志将字符串文本传递给编译器。基本模式是:
CPPFLAGS=/DSOME_STRING_VAR="asdf"
main.exe: main.cpp
$(CPP) $(CPPFLAGS) # ...
在main.cpp中,我希望能够执行以下操作:
const char *some_string_var = SOME_STRING_VAR;
main.cpp(271) : error C2065: 'asdf' : undeclared identifier
到目前为止,我尝试的每一种变化都会产生如下结果:
const char *some_string_var = SOME_STRING_VAR;
main.cpp(271) : error C2065: 'asdf' : undeclared identifier
我尝试了一个双引号“
”,用插入符号转义^“
,多次转义插入符号^^^“
,并将双引号“
”。据我所知,所有这些都是批处理脚本的转义语法,但它们在nmake中似乎不起作用
有没有办法在nmake中转义双引号,以便将它们正确地传递到compile命令中
对于额外的积分,nmake命令是由shell在批处理时执行的吗?也就是说,我需要担心这里的一级或两级转义吗
如果新版本启用了更干净的解决方案,我很乐意支持Visual Studio 2015+。tldr:用反斜杠转义双引号
如果您的测试文件
main.cpp
为:
#include <iostream>
int main() {
const char *some_string_var = SOME_STRING_VAR;
std::cout << some_string_var << std::endl;
}
将根据需要工作,测试程序给出:
>.\main.exe
asdf
如果您的makefile
是单行:
CPPFLAGS=/DSOME_STRING_VAR=\"asdf\"
然后:
也会起作用
我找不到这方面的任何参考。在VS2013和VS2017上进行了测试