c-如何通过q​​make DEFINES添加字符串值的宏?

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

当您用空格对Google qmake进行转义定义时,first result是正确的解决方案.

转载注明原文:c-如何通过q​​make DEFINES添加字符串值的宏? - 代码日志