2015-11-29 2 views
0

Допустим, что мой файл 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) 

Помогите Спасибо!

+0

Возможный дубликат [Makefiles - собрать все .cpp файлы в src/to .o в obj /, затем ссылку на двоичный файл в /](http://stackoverflow.com/questions/2908057/makefiles-compile-all-cpp-files-in-src-to-os-in -obj-то-ссылка-на-двоичный) –

ответ

Смежные вопросы