2016-10-04 17 views
2

我試圖宏類似的.pro文件添加到#define CPP_COMPILER_SETTING "g++ -std=c++1z"如何通過q​​make DEFINES添加一個字符串值的宏?

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文件轉換爲編譯器的輸入?

回答

3

你必須在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是正確的解決方案。

相關問題