c++ - 如何通过 qmake DEFINES 添加字符串值宏?

标签 c++ qt macros qmake

我正在尝试添加类似于 #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/

相关文章:

c - 如何知道编译时是否定义了宏?

Scala 宏 : Derive type signature from a ValDef

c++ - 编译时不能包含 Sparkle 框架

c++ - 如何区分AAA :BBB and AAA:BBB:CCC using regular expression?

c++ - 默认智能设备项目找不到依赖项

C++ Qt : undefined reference to `_imp___ZN12QApplicationC1ERiPPci'

c++ - 为路径的每个元素创建一个目录(如果它不存在)

python - 更改 QTableWidgetItem 背景颜色

c++ - 减小 Qt GUI 应用程序的大小

c++ - 如何在宏中获取智能指针的类型?