2011-02-28 86 views
2

我有一個包含條件包括這樣的.pro文件:lupdate和條件包括以pro文件

contains(CONFIG, embedded) { 
    SOURCES += a.cpp 
    HEADERS += a.h 
} 
else { 
    SOURCES += b.cpp 
    HEADERS += b.h 
} 

當運行從終端lupdate工具(lupdate myproject.pro),僅BH和.cpp被處理(因爲embedded不在CONFIG變量中)。
如何讓lupdate處理.pro文件中包含的所有文件?

+0

爲我工作Qt的4.7.1 - lupdate挑選要轉換的字符串來自兩個條件塊。你正在構建哪個版本的Qt?你的.pro文件是'LANGUAGES'還是'TRANSLATIONS'好? – laalto 2011-02-28 11:31:40

+0

我發現這確實有效。問題似乎是.cpp包含另一個.cpp文件(!),並由於其中一個原因lupdate不喜歡(我在OSX上工作)。 – 2011-02-28 12:15:36

+2

是的,lupdate不會通過C/C++預處理器運行文件。它只是拾取要從SOURCES翻譯的字符串。 – laalto 2011-02-28 12:21:04

回答

1

作爲最後的手段,你可以使用不關心pro文件lupdate模式,而只是掃描文件:

lupdate [options] [source-file|path]... -ts ts-files 
+0

我最終通過從shell腳本調用lupdate結束了(這似乎避免了包含問題)。謝謝。 – 2011-02-28 15:59:48