我正在尝试添加类似于 #define CPP_COMPILER_SETTING "g++ -std=c++1z"
的宏
在 .pro
文件中:
DEFINES += "CPP_COMPILER_SETTING=\\\"g++ \\-std\\=c++1z\\\""
在生成的 Makefile 中我得到:
DEFINES = -DCPP_COMPILER_SETTING=\"g++ \-std\=c++1z\"
我在编译时遇到这个错误:
g++: error: \-std\=c++1z": No such file or directory
我应该如何对字符串进行转义,使其从 .pro
文件到编译器的输入?
最佳答案
您需要在 Makefile 中包含以下内容:
-DCPP_COMPILER_SETTING=\"g++\ -std=c++1z\"
^^ ^ ^^
要将其放入 .pro
文件,您只需要转义反斜杠和双引号。因此,在 .pro
文件中,您将拥有:
DEFINES += "CPP_COMPILER_SETTING=\\\"g++\\ -std=c++1z\\\""
测试用例:
#include <iostream>
int main()
{
std::cout << CPP_COMPILER_SETTING << std::endl;
}
当你用谷歌搜索qmake escaping with spaces时,first result是正确的解决方案。
关于c++ - 如何通过 qmake DEFINES 添加字符串值宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39859754/