以下是makefile的基本模板:
#指定編譯器
cc = g++
#指定編譯引數
cflags = -std=c++11
#指定標頭檔案路徑,此處用於指定非標準庫的標頭檔案路徑
inc = -i./ -i /usr/include
#指定要鏈結的動態庫或靜態庫 -l是指定動態庫路徑,非標準的動態庫需要此引數
libs = -lm -ldl -l/mylibs/*** -l***
#把上面放一起
cxxflags =$$
$#指定生成可執行檔名稱
exec = a.out
#指定由哪些檔案來生成可執行檔案
objs = ***1.o ***2.o
#make執行動作$:
$$ -o $@ $^
#make clean動作
clean:
rm -rf $
#中間檔案的生成
%.o:%.c
$(cc)
$(cxxflags)
$(inc)
-o $@ -c $<
不生成中間.o檔案的模板(無論修改了幾個原始檔,都全部進行編譯):
#指定編譯器
cc = g++
#指定編譯引數
cflags = -std=c++11
#指定標頭檔案路徑,此處用於指定非標準庫的標頭檔案路徑
inc = -i./ -i /usr/include
#指定要鏈結的動態庫或靜態庫 -l是指定動態庫路徑,非標準的動態庫需要此引數
libs = -lm -ldl -l/mylibs/*** -l***
#把上面放一起
cxxflags =$$
$#指定生成可執行檔名稱
exec = a.out
#指定由哪些檔案來生成可執行檔案
cobjs = ***1.c ***2.c
#make執行動作
all:
$(cc)
-o $(exec)
$(cobjs)
$(cxxflags)
#make clean動作
clean:
rm -rf $
Makefile檔案格式
make的工作主要依賴於乙個叫makefile的檔案。makefile檔案描述了整個程式的編譯 鏈結等規則。targets prerequisites command targets 目標 prerequisites 依賴 command 命令,命令需要使用 tab 鍵空格 例 led.elf le...
makefile格式 實踐一
一直知道makefile是為了讓工程更合理化編譯和輸出 從未在unix下自己寫這個 在windows開發中一直用ide開發,ide自帶 偶而寫寫小東西,也是用bat方式直接編譯。ps bat方式就是自己寫編譯命令 與makefile的區別是前者無 件是否發生改變都編譯,後者是當編譯成功後若檔案未發生...
Makefile基本使用
首先我們先來看乙個示例 c hello.c include using namespace std int main makefile檔案 hello hello.o g hello.o o hello hello.o hello.s g c hello.s o hello.o hello.s he...