Qt DEFINES在项目文件中不起作用

时间:2011-09-04 12:27:24

标签: qt qmake

我有一个像这样开始的项目文件:

VERSION = 0.9.9.0
DEFINES += VERSION_NUMBER=$${VERSION}

所以我定义了一个新的常量VERSION_NUMBER,然后我可以在源代码中访问它。但是,我以后做的时候:

qDebug() << VERSION_NUMBER;

编译器告诉我error: C2143: syntax error : missing ';' before 'constant',好像没有定义VERSION_NUMBER。有谁知道可能是什么原因?

1 个答案:

答案 0 :(得分:2)

这里有三个问题需要解决。首先,您需要将VERSION_NUMBER=$${VERSION}赋值放在引号内:

Add a define to qmake WITH a value?

第二个问题是让QMake传入字符串文字#define并不容易。很多方法只会将您的数字 - 按周期分隔的数字常量解释为:

http://robertcarlsen.net/2009/01/06/qmake-xcode-bug-258

这可能会让你遇到问题...在我的设置上工作,虽然这是一个三重逃脱的头痛:

VERSION = \\\"'0.9.9.0'\\\"
DEFINES += "VERSION_NUMBER=$${VERSION}"

第三个问题 - 可能是最大的问题 - 是你使用过时的QMake,而Trolltech /诺基亚人也知道:

http://labs.qt.nokia.com/2009/10/12/to-make-or-not-to-make-qmake-and-beyond/

您应切换到其他内容(例如CMake ...支持Qt并由KDE使用。)