Я новичок в создании файлов, и я поставил это вместе с небольшим количеством пробной ошибки &. Этот код используется для компиляции моей программы на C++.Почему мой файл не оставляет объектных файлов?
Мой файл main.cpp в той же папке, что и файл makefile. У меня есть папка lib /, которая содержит основную часть заголовков.
Следующие make-файлы приводят к правильной и полной компиляции моего кода. Но я ожидал, что оставлю позади объекты. (Обратите внимание, что я пытался сделать с и без «чистых» правил, и я получаю те же результаты как раз.)
#
# 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.)
Вопросы:
Я правильно ожидать мейкфайлы производить * .o файлы, которые торчат вокруг после того, как главная цель была создана?
Если да, то почему мой makefile не делает это?
Спасибо, я не понял, что t его пробелы вызывали у меня проблемы. Я также ценю ваши советы по моей компиляции и сравнению ссылок! – vanilla