今天在linux上進行了比較複雜的編譯和測試。linux
先描述一下我比較失敗的編譯經驗,但願能把剛纔繁瑣的動做的動做描述清楚。測試
1.cpp ----> lib1.so編譯
2.cpp ----> lib2.so
file
3.cpp ----> exe
bug
source/bak(這個下面是:1.cpp.bak, 2.cpp.bak, 3.cpp.bak程序
source/*.cpp經驗
project/bak(這個下面是:Makfile1,Makfile2, Makfile3)項目
project/Makefilemargin
爲了編譯 lib1.so,我作了一下幾個動做:di
①rm project目錄下的全部的Makefile文件
②從project/bak中拷貝Makfile1到project目錄,並改成Makefile。
③rm source目錄下的全部的.cpp文件
④從source/bak中拷貝1.cpp.bak到source目錄,並改成1.cpp。
固然,若是編譯一次,這個固然不是問題。可是,若是,你須要編譯幾十次,這些多餘的腦力會成爲你找到真理的障礙。(找到真相原本就很艱難,表增長額外的險阻)
還好,今天頭腦還比較清醒,仍是挺過去了。
source/1/1.cpp
source/2/2.cpp
source/3/3.cpp
project/1/Makefile
project/2/Makefile
project/3/Makefile
如今要好不少了。是吧。
減小你查bug時的痛苦,把精力放在刀刃上。
讓你的查錯誤變得有跡可循,不會覆蓋掉之前的測試程序。
好比,你須要額外的知識,好比Makefile的相對路徑等問題。
麻煩。你可能以爲如今既有的東西可以解決問題,爲何要引入新的東東。其實,最重要的是,你怕改變。