我有一套函數foo1(),foo2(),foo3(),...在我的foo.c文件。 理想情況下,我想自由選擇哪些功能將被納入到程序中,哪些會被忽略/註釋掉。 makefile是否適合這樣的任務?是適合挑選什麼功能包括
隨意告訴我,如果有更好/更方便的方法來實現這一點。
我有一套函數foo1(),foo2(),foo3(),...在我的foo.c文件。 理想情況下,我想自由選擇哪些功能將被納入到程序中,哪些會被忽略/註釋掉。 makefile是否適合這樣的任務?是適合挑選什麼功能包括
隨意告訴我,如果有更好/更方便的方法來實現這一點。
我想也許你需要一些馬可斯和-D選項?
#ifdef FOO1
void foo1()
{}
#endif
#ifdef FOO2
void foo2()
{}
#endif
然後,在makefile中加入flage -DFOO2,那麼只有foo2會被編譯,而foo1會被忽略。 例如:
gcc -DFOO2 main.c
我很喜歡這個!謝謝 – SiltCrawler
最方便的辦法是離開他們,他們是,只是不叫被忽略的人。一些編譯器可能會優化和排除二進制代碼。
第二種最方便的方法是使用預處理器#ifdef
指令和編譯器-D
標誌。
最不方便的方法是編寫一個腳本,該腳本將只生成請求的函數foo.c
,並從make
調用該腳本。
非常豐富。如果我想確定哪些函數進入二進制文件,我堅持預處理器指令。謝謝! – SiltCrawler
爲什麼你不能讓他們都在? – Bathsheba
您要通過這樣做解決的*實際*問題是什麼? –
'我想自由選擇哪些函數將被包含到程序中,哪些函數將被忽略......這就是爲什麼你要給它們打電話,對吧? –