2011-09-04 63 views
1

工作,我有啓動這樣一個項目文件:Qt的定義並不在項目文件

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

所以我定義了一個新的常數VERSION_NUMBER,我就可以在源代碼訪問。但是,後來當我這樣做:

qDebug() << VERSION_NUMBER; 

編譯器告訴我error: C2143: syntax error : missing ';' before 'constant'彷彿VERSION_NUMBER沒有定義。有人知道可能是什麼原因嗎?

回答

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的,這是過時的,而奇趣/諾基亞人們對它的認識:

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

你應該切換到其他東西(如CMake ...支持Qt並由KDE使用)。