[Interest] Putting a define with spaces in the .pro file?
Murphy, Sean
smurphy at walbro.com
Fri Nov 13 02:51:07 CET 2015
I'm trying to add a defined string in my .pro file to be inserted by the preprocessor at compile time and I'm having trouble when it has spaces in it. Here's a really simplistic example:
test.pro:
QT += core
QT -= gui
TARGET = testDefinesWithSpacesConsole
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
DEFINES += MY_STRING=\\\"Hello\\\"
SOURCES += main.cpp
And main.cpp:
#include <QCoreApplication>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << QString(MY_STRING);
return a.exec();
}
This works as expected, running the application prints Hello on the command line.
But if I want my text to be a little more interesting and have spaces in it, it fails. Changing the DEFINES line in the .pro to:
DEFINES += MY_STRING=\\\"Hello You\\\"
refuses to compile:
g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DMY_STRING=\"Hello -DYou\" -DQT_CORE_LIB -I..\testDefinesWithSpacesConsole -I"..\..\..\..\Qt_5_3_2\5.3\mingw482_32\include" -I"..\..\..\..\Qt_5_3_2\5.3\mingw482_32\include\QtCore" -I"debug" -I"." -I"..\..\..\..\Qt_5_3_2\5.3\mingw482_32\mkspecs\win32-g++" -o debug\main.o ..\testDefinesWithSpacesConsole\main.cpp
<command-line>:0:11: warning: missing terminating " character [enabled by default]
<command-line>:0:4: warning: missing terminating " character [enabled by default]
<command-line>:0:4: warning: missing whitespace after the macro name [enabled by default]
..\testDefinesWithSpacesConsole\main.cpp:8:5: error: missing terminating " character
qDebug() << QString(MY_STRING);
^
Makefile.Debug:190: recipe for target 'debug/main.o' failed
mingw32-make[1]: *** [debug/main.o] Error 1
So you can see that the string "Hello You" that I was trying to pass intact has now been split up into two different defines. Is there a way to get this to work?
Sean
More information about the Interest
mailing list