Linux学习笔记-Makefile优化之头文件依赖
生活随笔
收集整理的這篇文章主要介紹了
Linux学习笔记-Makefile优化之头文件依赖
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果頭文件被更新,則包含了它的cpp文件應該被重新編譯。
比如first里面有個函數,main函數調用了first里面的函數,那么first.h變化了,main肯定要重新編譯
?
這里有個知識點:
-MMD 【這是編譯器使用的選項】
g++/gcc 編譯xxx.cpp文件時,可以提取里面的頭文件
如下面的這個main.cpp源碼:
#include "first.h" #include "second.h"#include <stdio.h>int main() {firstPrint();secondPrint();printf("main called!\n");return 0; }他用了first.h和second.h
從這里就可以看到了!!!!!main.o依賴main.cpp first.h second.h,這條
?
這里介紹一個指令:
-include $(XXXX) 將所有的.d文件包含進來
?
所有有下面這個Makefile
EXE=helloworldCPP_SOURCES=$(wildcard *.cpp) CPP_OBJECT=$(patsubst %.cpp, %.o, $(CPP_SOURCES)) DEP_FILES=$(patsubst %.o, %d, $(CPP_OBJECT))$(EXE): $(CPP_OBJECT)g++ $(CPP_OBJECT) -o $(EXE)%o: %.cppg++ -c -MMD $< -o $@-include $(DEP_FILES)clean:rm -rf *.o *.d $(EXE)運行截圖如下:
EXE=helloworldCPP_SOURCES=$(wildcard *.cpp) CPP_OBJECT=$(patsubst %.cpp, %.o, $(CPP_SOURCES)) DEP_FILES=$(patsubst %.o, %d, $(CPP_OBJECT))$(EXE): $(CPP_OBJECT)g++ $(CPP_OBJECT) -o $(EXE)%o: %.cppg++ -c -MMD $< -o $@-include $(DEP_FILES)clean:rm -rf *.o *.d $(EXE)?
總結
以上是生活随笔為你收集整理的Linux学习笔记-Makefile优化之头文件依赖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt工作笔记-QTreeWidget顺序
- 下一篇: C++ opengl 点光源