我正在學習如何使用g ++編寫Makefile
。我使用以下example 的代碼項目是here。這是在Makefileg ++中的MakeFile。可忽略的命令
# Makefile for Writing Make Files Example
# *****************************************************
# Variables to control Makefile operation
CXX = g++
CXXFLAGS = -Wall -g
# ****************************************************
# Targets needed to bring the executable up to date
main: main.o Point.o Rectangle.o # ***Statement : 1
$(CXX) $(CXXFLAGS) -o main main.o Point.o Rectangle.o #Commands underneath dependencies have tabs before them
# The main.o target can be written more simply
main.o: Point.h Rectangle.h # ***Statement : 2
$(CXX) $(CXXFLAGS) -c main.cpp
Point.o: Point.h # ***Statement : 3
Rectangle.o: Rectangle.h Point.h # ***Statement : 4
現在我對此我也參考使用,便於質疑的聲明關鍵字的具體線的一些問題。
1-我理解的語句是否正確。當g ++在main之後遇到main.o(它是目標main.o的依賴)時:它跳轉到目標main.0(語句2)。然後,它檢查main.o的依賴關係(如果依賴項(找到這兩個頭文件),它會運行該命令),然後返回以完成其對下一個依賴項的任務,如此等等。
2-對於Point.o的依賴性是Point.h爲什麼沒有命令作爲這樣
$(CXX) $(CXXFLAGS) -c Point.cpp
同樣地,對於Rectangle.o爲什麼是有它的依賴性這樣
沒有命令$(CXX)$(CXXFLAGS)-c Rectangle.cpp
如果有人能澄清這一點,我將不勝感激。
你缺少'xxx.cpp'爲'xxx.o' ... – PiotrNycz 2014-10-20 06:21:38
@PiotrNycz我的GNU使(3.81)implicitl的版本依賴y增加了依賴性。 – juanchopanza 2014-10-20 06:33:32