最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

快速編寫一個簡潔、正確的makefile

2023-02-25 13:47 作者:上岸的小浣熊  | 我要投稿

?makefile教程

? ? ? ?當(dāng)我們在 linux 系統(tǒng)下進行 C/C++ 編程,或者要拿著我們 windows 系統(tǒng)下的 VS 編譯器中編寫的 C/C++ 源碼在 linux 系統(tǒng)中運行時,我們就會涉及到 makefile 文件。

? ? ? ?makefile 文件用于 linux 系統(tǒng)中將編寫好的 .c ,.cpp,.h 文件編輯成一個可執(zhí)行文件,類似 VS 中的 “生成解決方案” 的過程。擁有獨立的編寫語言和方法。當(dāng)然,也可以通過shell命令行編譯,但當(dāng)文件較多時,采用命令行去編譯費時費力,并且當(dāng)項目中代碼發(fā)生變化時,不利于后期的更新和維護。

? ? ? ?一個正確可行的makefile文件也具有多種,本次我們介紹一種書寫較為簡潔、上手較為容易的編寫方式,如果要詳細(xì)學(xué)習(xí)的話,makefile文件有很多可以學(xué)習(xí)研究的地方。

1? 準(zhǔn)備

? ? ? ?采用 cd 命令將當(dāng)前工作目錄設(shè)置為代碼文件所在路徑,采用 vim makefile 命令打開文件(如果沒有會自動創(chuàng)建)

2? 編寫

2.1? 定義參數(shù)(主要為了簡潔,便于更新、維護)

CXX = g++ (gcc)? ? ? ?# .cpp 文件用 g++ 編譯,.c 文件用 gcc 編譯

TARGET = .....? ? ? ? ? # 輸入所生成可執(zhí)行文件的名字,類似于 win 中的 ....exe

OBJ = main.o? .....? ? # 輸入包含 main 在內(nèi)的所有 .cpp,但后綴改為 .o,中間空格隔開即可

CXXFLAGS = -c? ? ? # 編譯選項,如果想看警告信息,在后面添加 -Wall,空格隔開

2.2? 編譯

$(TARGRT) : $(OBJ)

制表符$(CXX)? -o? $@? $^? ?# 表示用 g++ 編譯器,將 OBJ 里的所有 .o 生成可執(zhí)行程序

%.o : %.cpp

制表符$(CXX)? $(CXXFLAGS)??$^??-o??$@??? # 表示用?g++?編譯器,將所有 .cpp 文件編譯生成 .o?文件

.PHONY:clean

clean:

制表符rm? -f? ?*.o? $(TARGET)? ? ?#刪除編譯生成的所有 .o 文件和可執(zhí)行程序

2.3? 使用

? ? ? ?makefile 編寫結(jié)束后,在 shell 命令行輸入 make 進行編譯,如果文件名不是makefile,輸入? make? -f? 文件名? 進行編譯,輸入 make clean 刪除生成的文件。

2.4? 運行

? ? ? ?在?shell 命令行輸入?? ./可執(zhí)行程序名? ?就可以成功運行程序了。

快速編寫一個簡潔、正確的makefile的評論 (共 條)

分享到微博請遵守國家法律
昌宁县| 宁陵县| 剑阁县| 安阳市| 子长县| 融水| 沅陵县| 吴桥县| 罗江县| 永靖县| 会理县| 嘉善县| 兴山县| 怀柔区| 冀州市| 喜德县| 龙海市| 奉化市| 扎赉特旗| 永胜县| 工布江达县| 鄂托克前旗| 灌南县| 应城市| 江阴市| 五大连池市| 彭水| 石首市| 新疆| 福海县| 灵宝市| 申扎县| 武隆县| 贵港市| 墨江| 河间市| 博乐市| 安新县| 长宁区| 九寨沟县| 东丰县|