Linux学习笔记-对Makefile的初步优化
生活随笔
收集整理的這篇文章主要介紹了
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)題。
- 上一篇: Qt工作笔记-简单的画图工具
- 下一篇: Linux工作笔记-解决安装Qt时缺少l