我是新來製作文件,我把這個一起試用&錯誤。這段代碼用於編譯我的C++程序。爲什麼我的make文件沒有留下目標文件?
我的main.cpp文件與makefile位於同一文件夾中。我有一個lib /文件夾,其中包含標題主要依賴。
以下makefile會導致我的代碼的正確和完整的編譯。但我期待着我會發現留下* .o對象。 (請注意,我試圖讓既沒有「乾淨」的規則,我也得到了同樣的結果兩次。)
#
# Makefile
#
CXX = g++
CCFLAGS = -O3 -I/sw/include -L/sw/lib
## /sw/include and /sw/lib contain dependencies for files in my lib/
LDFLAGS = -lpng
OPTS = $(CCFLAGS) $(LDFLAGS)
SOURCES = $(wildcard lib/*.cpp) main.cpp
OBJECTS = $(SOURCES: .cpp = .o)
TARGET = spirals
$(TARGET): $(OBJECTS)
$(CXX) $(OPTS) $^ -o [email protected]
.PHONY: depend
depend:
g++ -MM $(SOURCES) > depend
## generate dependencies list
include depend
.PHONY: clean
clean:
rm -f *.o lib/*.o $(TARGET)
而且,它很重要的情況下,我MacOSX上和我程序是在xcode中設計的。 (我知道xcode有它自己的構建流程,但是我正在爲一個linux系統設計一個命令行程序,並且我想測試編譯&在bash環境中鏈接,而不是僅僅通過xcode。)
問題:
我是正確的期望makefile文件產生* .o文件,一旦主要的目標已經創建了堅持圍繞?
如果是這樣,爲什麼我的生成文件不這樣做?
謝謝,我沒有意識到t他的空間引起了我的問題。我也很欣賞你的關於我的編譯與鏈接選項的提示! – vanilla