例項1:作為linux或unix下的程式開發人員,大家一定都遇到過makefile,用make命令來編譯自己寫的程式確實是很方便。一般開發情況下,大家都是手工寫乙個簡單makefile。下面先給乙個最簡單的示例**:obj = a.o b.o main.o
h = a.h b.h
dbg = -g
main : $(obj)
gcc $(obj) $(dbg) -o main
%.o : %.cpp $(h)
g++ -c $< -o $@
例項2:
#makefile示例說明:object= main.o function.o
change:$(object)
cc -o change $(object)
mv change $(home)/bin
main.o:
cc -c main.c -i$(home)/program/date/include
function.o:
cc -c function.c -i$(home)/program/date/include
clean:
rm change $(object)
這裡是使用unix下的cc編譯器,當然也能換成gcc
最後生成的可執行檔名:change
源程式檔案:main.c function.c
.**件(標頭檔案)所在目錄:$(home)/program/date/include
中間目標檔名:main.o function.o
當在shall中執行命令:
make clean將會執行
rm change $(object)刪除檔案: change main.o function.o
語句:
mv change $(home)/bin將最終生成的可執行檔案移動到
$(home)/bin這一步可以不要,但這樣符合目錄管理規範,而且$(home)/bin一般在環境變數path中有設定,這樣可以在任意目錄下時也能執行可執行檔案。
注意:makefile編輯時另起一行,注意不能用空格,要用tab鍵,否則會報錯
makefile裡面的注釋用#,其它都會報錯
makefile簡單介紹
makefile是用於自動編譯和鏈結的,乙個工程有很多檔案組成,每乙個檔案的改變都會導致工程的重新鏈結,但是不是所有的檔案都需要重新編譯,makefile中紀錄有檔案的資訊,在make時會決定在鏈結的時候需要重新編譯哪些檔案。
makefile的宗旨就是:讓編譯器知道要編譯乙個檔案需要依賴其他的哪些檔案。當那些依賴檔案有了改變,編譯器會自動的發現最終的生成檔案已經過時,而重新編譯相應的模組。
例項3:
.phony: all cleanall : main
main : main.o a.o b.o
\tab\ g++ -o main main.o a.o b.o
main.o : main.cpp b.h
\tab\ g++ -o main.o -c main.cpp
a.o : a.cpp a.h
\tab\ g++ -o a.o -c a.cpp
b.o : b.cpp b.h a.h
\tab\ g++ -o b.o -c b.cpp
clean:
\tab\ @rm -f a.o b.o main.o main
SQL WHERE IN引數化編譯寫法簡單示例
前言 最近在一次使用sql中的where in語句時,造成了一些非預期的查詢結果。尤其是在 中去編寫並執行sql語句時,會出現一些意外情況。再查閱了一些資料以及手動測試後,發現是自己sql語句寫法存在問題,在此記錄。例子業務需求,需要通過sql語句從asset資產表中查詢域名字段在 thief.on...
NSDictionary plist簡單示例
在iphone ipad工程裡面,新增 file other property list,例如 test.plist,然後在其中新增3個專案 key name,date,dept,並填充value值。以下為對此test.plist檔案的一系列常用操作 myname,mydate,mydept為定義的...
NSDictionary plist簡單示例
在iphone ipad工程裡面,新增 file other property list,例如 test.plist,然後在其中新增3個專案 key name,date,dept,並填充value值。以下為對此test.plist檔案的一系列常用操作 myname,mydate,mydept為定義的...