相信很多linux開發者 都得自己來寫makefile,剛開始學習學寫這個的時候都會碰到很多困難,我之前沒有自己獨立完成過makefile,都是在公司已有的模板上新增。現在突然有乙個很大的想法就是從零開始寫makefile,這個部落格就是我的學習筆記。
**如下:
[cpp]view plain
copy
#ifndef add_h
#define add_h
int add(int a, int b);
#endif // add_h
#include "add.h"
int add(int a, int b)
[cpp]view plain
copy
#ifndef mul_a
#define mul_a
int mul(int a, int b);
#endif // mul_a
#include "mul.h"
int mul(int a, int b)
[cpp]view plain
copy
#ifndef sub_h
#define sub_h
int sub(int a, int b);
#endif // sub_h
#include "sub.h"
int sub(int a, int b)
接下來就是最重要的makefile檔案了
[plain]view plain
copy
//makefile
cross =
cc = $(cross)gcc
cxx = $(cross)g++
debug = -g -o2
cflags = $(debug) -wall -c
rm = rm -rf
srcs = add.cpp sub.cpp mul.cpp main.cpp
objs = $(patsubst %.cpp, %.o, $(srcs))
version = 1.0.0.0
target = test.$(version)
$(target) : $(objs)
$(cxx) $^ -o $@
$(objs):%.o : %.cpp
$(cxx) $(cflags) $< -o $@
clean:
$(rm) $(target) *.o
好了,這就是我的工程裡面所有的**和檔案,這裡面有makefile檔案和make.force兩個檔案,這兩個檔案的內容完全相同。在執行make命令的時候,系統會自動找到makefile或makefile檔案(注:盡可能使用makefile名稱,因為linux開發專案中,所有的檔案名字都是小寫,因此為了區分出make檔案,將m大寫),除此之外也可以手動指定make檔案,使用"make
-f make.force"來指定將make.force檔案作為執行make命令的檔案,清理內容是("make clean -f
make.force")。
下來,開始一句一句的講解makefile檔案的命令:
cross = //在開發時候,有時候會有嵌入式的選項
cc = $(cross)gcc
cxx = $(cross)g++
debug = -g -o2 //這裡一般設定為空,在編譯時候手動指定,例如:make debug="-g -o2"
cflags = $(debug) -wall -c
rm = rm -rf
srcs = add.cpp sub.cpp mul.cpp main.cpp //最笨的方法,將所有的.cpp檔案新增到srcs中
objs = $(patsubst %.cpp, %.o, $(srcs)) //通過*.cpp檔案獲得同名的*.o檔案
version = 1.0.0.0 //版本資訊
target = test.$(version) //組裝檔名和版本資訊
$(target) : $(objs) //連線
$(cxx) $^ -o $@
$(objs):%.o : %.cpp //生成*.o檔案
$(cxx) $(cflags) $< -o $@
clean:
$(rm) $(target) *.o
一點一點進步
requestparam,是獲取前端傳遞給後端的引數,可以使get方式,也可以是post方式。若前端傳遞的引數和後端接收的引數名稱不一致,則必須要標註。pathvariable,是獲取get方式,url後面引數,進行引數繫結。1.裝箱就是講基本資料型別轉換為包裝類,拆箱就是自動將包裝類轉換為基本資料...
他們寫的,一點思考,一點敬意
技術的正宗與野路子 我們的大腦好比記憶體。既然是記憶體,就裝不下所有的知識。但應該能裝下對於知識的索引,否則我們便沒法工作了。啊,我的程式為啥卡住啦 本文簡答介紹在linux環境下如何利用gdb來分析卡住的程式,本文使用的python為cpython2.7。2019,能否解開時間的困局?通常在年初的...
每天學一點(一)
記錄學習內容 js中對於函式的建立,在使用函式表示式和函式宣告相結合時,正確寫法為 var sum function sum a,b console.log sum 1,2 輸出3 若定義的變數和函式名稱書寫不一致,則會產生錯誤。var sum1 function sum2 a,b console....