文中所使用的Linux版本是:Ubuntu
01 make工具和makefile的引入
當(dāng)源碼文件比較多的時(shí)候不適合通過直接輸入gcc來(lái)編譯,需要一個(gè)自動(dòng)化編譯的工具
make工具的工作包括:
1.如果只修改了某幾個(gè)源文件,則只編譯這幾個(gè)源文件
2.如果某個(gè)頭文件被更改了,則重新編譯所有包含該頭文件的源文件
make工具主要用于完成自動(dòng)化編譯,make編譯時(shí)需要makefile文件提供編譯文件
02 Vim編輯器操作Makefile
配置Vim編輯器
sudo vi /etc/vim/vimrc
set ts=4——設(shè)置Tab鍵為4個(gè)字節(jié)
set nu——每行的開頭顯示行號(hào)
(在最下面添加上面兩個(gè)語(yǔ)句)
使用步驟
(1)六 制作文件
②編輯以下代碼:
規(guī)則格式:
目標(biāo)... :依賴文件集合...
命令1
命令2
....
(每條命令必須以Tab開始,不能使用空格)
③輸入指令make
④最后輸入指令make clean 可以清楚所有的.o文件
03Makefile基本語(yǔ)法
makefile變量的使用
objects = main.o input.o calcu.o
主:$(對(duì)象)
GCC -o main $(對(duì)象)
賦值“=”
名稱 = 管理員1
當(dāng)前 =$(名稱)
名稱 = 管理員
打?。?/p>
@echo 當(dāng)前:$(當(dāng)前)
這里打印的值時(shí)admin,而不是admin1,因?yàn)榇蛴〉氖亲罱K變量的值
賦值“:=”
名稱 = 管理員1
當(dāng)前 :=$(名稱)
名稱 = 管理員
打?。?/p>
@echo 當(dāng)前:$(當(dāng)前)
這里打印的值時(shí)admin1,而不是admin。 這就是和“=”的區(qū)別
賦值“? =”
當(dāng)前 ?=你好
打印:
@echo 當(dāng)前:$(當(dāng)前)
//這里打印hello
當(dāng)前:=管理員
當(dāng)前?=你好
打印:
@echo 當(dāng)前:$(當(dāng)前)
//這里打印的值時(shí)admin1,而不是admin。 這就是和“=”的區(qū)別
自動(dòng)化變量
@,%,<,?,^,+,$*
最常用的三個(gè)變量:@,<,$^
功能表:
偽目標(biāo)
偽目標(biāo)不代表真正的目標(biāo)名,一般的目標(biāo)名都是要生成文件,而偽目標(biāo)不代表真正的目標(biāo)名,在執(zhí)行make命令時(shí)通過指定這個(gè)偽目標(biāo)來(lái)執(zhí)行其所在規(guī)則定義的命令
如果在工作目錄下有相同的文件時(shí),需要聲明偽目標(biāo),例如. PHONY:XXX
-
Linux
+關(guān)注
關(guān)注
87文章
11469瀏覽量
212911 -
VIM
+關(guān)注
關(guān)注
0文章
136瀏覽量
15669 -
編譯
+關(guān)注
關(guān)注
0文章
676瀏覽量
33796 -
編輯器
+關(guān)注
關(guān)注
1文章
818瀏覽量
31817 -
Makefile
+關(guān)注
關(guān)注
1文章
125瀏覽量
19601
發(fā)布評(píng)論請(qǐng)先 登錄
Linux Makefile通用模板詳解


#硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.16 make工具和Makefile的引入-1

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.17 Makefile基本語(yǔ)法-1

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.17 Makefile基本語(yǔ)法-2

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-1.17 Makefile基本語(yǔ)法-3

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.05.2 Makefile前期所作的內(nèi)容-1

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.05.2 Makefile前期所作的內(nèi)容-2

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.05.2 Makefile前期所作的內(nèi)容-3
基于Linux 2.6內(nèi)核Makefile分析

關(guān)于Linux 2.6內(nèi)核Makefile的分析
linux makefile教程
Linux最新2.6內(nèi)核的Makefile體系詳細(xì)資料分析
虛擬機(jī):Linux的Makefile使用for編譯多個(gè)目標(biāo)文件

評(píng)論