Допустим, что мой файл Makefile находится в том же каталоге, что и исходные, и я хочу хранить объектные файлы в подкаталоге obj/и целевом исполняемом файле в bin/subdirectory.Установить Makefile для создания в другом каталоге
src/
main.cpp
test.cpp
test.h
/many other *.cpp files and headers/
Makefile
obj/
bin/
Проблема с моей Makefile, что я не могу получить ПРЕДМЕТЫ переменных для содержит список * .o файлов с именами, как Samy * .cpp файлы, но в подкаталоге OBJDIR.
В настоящее время он работает только в том случае, если я назвал все объектные файлы по одному.
CXX=g++
CXXFLAGS=-c -Wall
LDFLAGS=
SOURCES=$(wildcard *.cpp) # very convenient wildcard
BINDIR=bin
OBJDIR=obj
OBJECTS=$(OBJDIR)/main.o $(OBJDIR)/test.o # how do I make a wildcard here?
TARGET=$(BINDIR)/my_executable
all: $(SOURCES) $(TARGET)
$(TARGET): $(OBJECTS)
$(CXX) $(LDFLAGS) $(OBJECTS) -o [email protected]
$(OBJECTS): $(OBJDIR)/%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o [email protected]
clean:
rm -rf $(OBJDIR)/$(OBJECTS) $(BINDIR)/$(TARGET)
Помогите Спасибо!
Возможный дубликат [Makefiles - собрать все .cpp файлы в src/to .o в obj /, затем ссылку на двоичный файл в /](http://stackoverflow.com/questions/2908057/makefiles-compile-all-cpp-files-in-src-to-os-in -obj-то-ссылка-на-двоичный) –