初探vcIDE背後的祕密-爲vc項目寫makefile,實現自動獨立編譯

以前在vc下寫程序,都是通過IDE寫,寫完按一下run就開始運行了,從來沒有想過內部到底是如何工作,整個工程除了源代碼還有十來個文件,也不知道是幹嗎的。這兩天閒來無事探索了一把 。

前段時間接觸公司的嵌入式代碼,發現都是用makefile進行自動編譯,而且整個項目源文件、頭文件、庫文件、編譯工具等分別放在諸如/src、/inc、/bin、/lib之類的目錄中,井井有條,編譯時只要make一下。最近學習linux,發現linux下諸多軟件也是發佈源代碼,只要簡單make一下就可以了。於是我就想,是否vc的項目文件也能這樣做呢?於是開始嘗試:

首先我用vc自動生成一個makefile文件,進行分析,發現vc編譯的過程基本上就是:先編譯資源文件,然後編譯源文件,最後鏈接。通過這一步,我知道了編譯器、鏈接器等分別是什麼名字,並得到了一個可參考的編譯、鏈接參數。

其次,將cpp文件均考至src目錄下,h文件均考至inc目錄下,其他vc庫文件(vc安裝目錄/vc98下,包括/include、/lib、/mfc這幾個目錄),並將cl、link、rc這三個基本工具(均在vc安裝目錄下的vc98/bin和/common/msdev98/bin裏面)考至bin目錄下

然後嘗試用命令行編譯,但無法通過,主要都是少了一些dll之類的東西。反正這些都在vc安裝目錄下,自己去找一下吧。唯一值得一提的是c1.dll、c2.dll、c1XX.dll這三個文件如果缺少不會準確提示你,只會發生D2027錯誤,在這一塊我繞了很長時間。

然後就開始寫makefile和批處理文件。如果心情好,可以寫好看點。象我沒耐心,就隨便寫一個能用的湊合了。

最後一步非常需要耐性。將vc自帶的庫去掉,反覆編譯,提示缺少哪個就考哪個,這樣可以過濾掉所有不需要的庫(所有的庫有100多M呢),這樣得到的庫文件就是最精簡的。

看看成果。原來的項目文件夾將近13m,現在的文件夾17M。看起來多了4M,但是由於不需要安裝vc就可以獨立編譯,顯然更利於交流。

 

點此下載我的五子棋項目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章