【问题标题】:How to add a string-valued macro via qmake DEFINES?如何通过 qmake DEFINES 添加字符串值宏?
【发布时间】:2016-10-04 18:55:28
【问题描述】:

我正在尝试添加类似于#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 文件到编译器的输入?

【问题讨论】:

    标签: c++ qt macros qmake


    【解决方案1】:

    您需要在 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 是正确的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-07
      • 2021-10-04
      • 2022-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2021-06-11
      • 1970-01-01
      相关资源
      最近更新 更多