日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux学习笔记-对Makefile的初步优化

發(fā)布時(shí)間:2025/3/15 linux 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux学习笔记-对Makefile的初步优化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文件如下:

?

這里的Makefile源碼如下:

helloworld: main.o first.o second.og++ main.o first.o second.o -o helloworldmain.o: first.h second.h main.cppg++ -c main.cpp -o main.ofirst.o: first.h first.cppg++ -c first.cpp -o first.osecond.o: second.cpp second.hg++ -c second.cpp -o second.oclean:rm -rf *.o

用g++去跑下看看!

本博文的任務(wù)是對(duì)這個(gè)Makefile進(jìn)行簡(jiǎn)單的優(yōu)化!

對(duì)程序名稱進(jìn)行優(yōu)化!

Makefile代碼如下:

EXE=NiMei$(EXE): main.o first.o second.og++ main.o first.o second.o -o $(EXE)main.o: first.h second.h main.cppg++ -c main.cpp -o main.ofirst.o: first.h first.cppg++ -c first.cpp -o first.osecond.o: second.cpp second.hg++ -c second.cpp -o second.oclean:rm -rf *.o $(EXE)

用g++跑下,程序運(yùn)行截圖如下:

使用下clean這個(gè)Makefile命令!

Linux命令與現(xiàn)象都如下圖:


?

?

如果有多個(gè).cpp,要生成.o文件,Makefile也提供了優(yōu)化,Makefile源碼如下:

EXE=NiMei$(EXE): main.o first.o second.og++ main.o first.o second.o -o $(EXE)main.o: first.h second.h main.cppg++ -c main.cpp -o main.o%o: %.cppg++ -c $< -o $@clean:rm -rf *.o $(EXE)

這里只給出了.cpp的依賴項(xiàng),并沒(méi)有給出.h的。(后期博文會(huì)給出)

?

程序運(yùn)行截圖如下:

?

下面給出兩個(gè)函數(shù)功能:

1.使用通配符找當(dāng)前文件所有.cpp文件,源碼如下:

EXE=NiMeiFIND_CPP=$(wildcard *.cpp)$(EXE): main.o first.o second.og++ main.o first.o second.o -o $(EXE)main.o: first.h second.h main.cppg++ -c main.cpp -o main.o%o: %.cppg++ -c $< -o $@clean:rm -rf *.o $(EXE)test1:@echo $(FIND_CPP)

運(yùn)行截圖如下:

?

2.把當(dāng)前文件夾里面的.cpp文件找出來(lái),構(gòu)造.o文件名(其實(shí)就是把xxx.cpp中的xxx提取出來(lái),再后面接一個(gè).o)

Makefile源碼如下:

EXE=NiMeiFIND_CPP=$(wildcard *.cpp) FIND_CPPTOO=$(patsubst %.cpp, %.o, $(FIND_CPP))$(EXE): main.o first.o second.og++ main.o first.o second.o -o $(EXE)main.o: first.h second.h main.cppg++ -c main.cpp -o main.o%o: %.cppg++ -c $< -o $@clean:rm -rf *.o $(EXE)test1:@echo $(FIND_CPP)test2:@echo $(FIND_CPPTOO)

程序運(yùn)行截圖如下:

?

再次把Makefile進(jìn)行優(yōu)化,源碼如下:

EXE=NiMeiFIND_CPP=$(wildcard *.cpp) FIND_CPPTOO=$(patsubst %.cpp, %.o, $(FIND_CPP))$(EXE): $(FIND_CPPTOO)g++ $(FIND_CPPTOO) -o $(EXE)main.o: first.h second.h main.cppg++ -c main.cpp -o main.o%o: %.cppg++ -c $< -o $@clean:rm -rf *.o $(EXE)test1:@echo $(FIND_CPP)test2:@echo $(FIND_CPPTOO)

程序運(yùn)行截圖如下:

總結(jié)

以上是生活随笔為你收集整理的Linux学习笔记-对Makefile的初步优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。