我有test.cpp和test.h文件。 這些文件中我需要有一個條件編譯。如何使條件編譯標誌可用於QT moc文件?
#ifdef CPR
int iParameter=1;
#else
int iParameter=2;
#endif
從shell腳本當我調用編譯時,基於編譯標誌我導出類似CPR_BUILD。
export CPR_BUILD=y
在此文件夾
ifeq ($(CPR_BUILD),y)
CXXFLAGS+=CPR
endif
這適用於.cpp文件中生成文件。 但條件編譯不適用於moc_test.h.cpp文件。
我想我需要在module_name.pro文件中做些什麼來使它可用於moc。但不知道如何。嘗試了下面的東西,但它不起作用。
CPR_BUILD {
DEFINES += CPR
}
這需要在module_name.pro文件中添加? – Pradeep
如何使用CPR_BUILD爲moc定義CPR? – Pradeep
不,這是用於cpp/h文件。如果你之後區分moc'ing和編譯,你可以使用這個符號而不是'CPR',或者不要重寫所有的東西,像我建議的那樣寫ifdef並在某處定義'CPR'(例如在「defines.h」中幷包含它在需要的地方)。 – Gombat