2016-10-04 8 views
2

Я пытаюсь добавить макрос похож на #define CPP_COMPILER_SETTING "g++ -std=c++1z"Как добавить строковый макрос через qmake DEFINES?

в .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 во вход компилятора?

ответ

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 является правильным решением.