一點一點學寫Makefile(4) - 編譯時指定宏參數


我們在項目中有時為了方便會自定義一些與項目無關的功能,例如打印輸出一些提示信息、將關鍵協議生成文件等,但是如果每次都通過修改代碼的方法來實現,測試部門就會認為你改的這些代碼可能會帶來其他問題。對於這種情況,我一般會通過開關宏來控制,同時編譯多個文件,在測試時使用一個正常發布的版本,如果發現問題並且無法判斷問題的來源時,可以使用這個由打印輸出的版本,找到問題並解決后在切換成為原來的版本。

先上一端測試代碼,非常簡單:

  1. #include <iostream>  
  2.   
  3. using namespace std;  
  4.   
  5. int main(int argc, char* argv[])  
  6. {  
  7. #ifdef _DEBUG  
  8.     cout << "using debug..." << endl;  
  9. #endif  
  10.     cout << "stop..." << endl;  
  11. }  


這段代碼功能是如果事先定義好了_DEBUG宏,則輸出using debug...信息,如果沒有,則只輸出stop...信息,結果如下:

如上圖,同樣的一段代碼,執行的時候完全是兩個結果就是通過編譯時在外部定義宏來實現的。既然編譯單個文件是這樣,我們在寫項目時不也是能使用這種方法嗎?接下來我們繼續延續之前的文檔來寫我們的Makefile

代碼下載地址   請選擇makefile-4

我的Makefile文件是這樣寫的:

接下來看看我的main.cpp文件

好,接下來就開始編譯看結果了


最后,請允許我使用王祖藍的標准動作,兩個手指動作一擺:完美……



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM