可能重複:
How to include header file through makefile有沒有辦法自動在所有C或CPP文件中包含頭文件?
我用gcc編譯我的代碼。我也有幾個make文件。我可以告訴編譯器將一個特定的頭文件包含在所有CPP文件中。
我該怎麼做?
可能重複:
How to include header file through makefile有沒有辦法自動在所有C或CPP文件中包含頭文件?
我用gcc編譯我的代碼。我也有幾個make文件。我可以告訴編譯器將一個特定的頭文件包含在所有CPP文件中。
我該怎麼做?
添加gcc
適當preprocessor option您Makefile
-s和有定義這些一個common_feature_header.h
頭文件。
# in Makefile
CPPFLAGS+= -include common_feature_header.h
如果你只是想定義一些預處理標誌,你並不需要一個common_feature_header.h
文件,但只需添加到您的Makefile
如下定義
CPPFLAGS+= -DSOME_FEATURE_FLAG=1 -DSOME_OTHERFEATURE_FLAG=0 \
-DYET_ANOTHER_THING=2
參見this answer。
P.S.您可能需要使用remake(特別是其-x
選項)來調試您的Makefile
。
謝謝...我是新來製作文件。所以我會感激一點幫助理解這一點。從你所說的,我知道我需要在make文件中的頭文件中定義每個變量,比如說我在common_feature_header.h中有10個#defines,我需要在make文件中有相應的10個條目。那是對的嗎? [對不起,想問一個可能愚蠢的問題] – NeonGlow
不,你可以在'Makefile'中的同一個'CPPFLAGS ='...設置上有'-Dxxx'選項。 –
直接在makefile文件中,您可以執行-DFEATURE1_SUPPORTED=1
,以使其在所有使用CPP的CPP上生效。
謝謝。從我明白的鏈接中,我需要添加CFLAGS = -D FEATURE1_SUPPORTED = 1。是嗎? – NeonGlow
把它們放在一個名爲'feature_support.h'的頭文件中,並且將它包含在每個需要它的文件中,這使得它更有意義。 – chris
@chris:我已經在大型代碼庫中看到了這個過程的自動化。但不能記住它是如何完成的...... :) – NeonGlow
如果你在每個文件中都需要它,那麼你的設計可能有問題。 –