我有一个像这样开始的项目文件:
VERSION = 0.9.9.0
DEFINES += VERSION_NUMBER=$${VERSION}
所以我定义了一个新的常量VERSION_NUMBER,然后我可以在源代码中访问它。但是,我以后做的时候:
qDebug() << VERSION_NUMBER;
编译器告诉我error: C2143: syntax error : missing ';' before 'constant'
,好像没有定义VERSION_NUMBER。有谁知道可能是什么原因?
答案 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使用。)