2014-01-26 10 views
-1

Я пытаюсь включить мои файлы заголовков в make-файл, поэтому мне не нужно make clean && make каждый раз, когда я редактирую заголовочный файл, который не имеет соответствующего файла cpp.Включить заголовки в MakeFile

EDIT

До сих пор у меня есть это:

# Declaration of variables 
CC = g++ 
CC_FLAGS = -Wall -g 

# File names 
EXEC = Main 
DEPS = MoveLogic.hpp 
SOURCES = $(wildcard *.cpp) $(wildcard Pieces/*.cpp) 
TARGET = $(SOURCES:.cpp=.o) 
TARGET_DEPS = $(DEPS:.hpp=.o) 

# Main target 
$(EXEC): $(TARGET) $(TARGET_DEPS) 
    $(CC) $(TARGET) $(TARGET_DEPS) -o $(EXEC) 

# To obtain dependanies 
%.o: %.hpp 
    $(CC) $(DEPS) -o [email protected] 

# To obtain object files 
%.o: %.cpp 
    $(CC) -c $(CC_FLAGS) $< -o [email protected] 

# To remove generated files 
clean: 
    rm -f $(EXEC) $(TEST) $(TARGET) 

Но я получаю ошибку

ignoring file MoveLogic.o, file was built for unsupported file format (0x43 0x50 0x43 0x48 0x01 0x0C 0x00 0x00 0x27 0x08 0x00 0x00 0x0B 0x02 0x68 0x42) which is not the architecture being linked (x86_64): MoveLogic.o 
+0

Что вы ищете - это поколение зависимостей. Переключатель GCC -MM или -MT - это начало вашего решения. Ищите похожие вопросы. [makefile dependency] (http://codereview.stackexchange.com/questions/2547/makefile-dependency-generation) – KeithSmith

+0

@KeithSmith Я все еще полностью смущен – user3223763

+1

Как вы использовали переменную 'DEPS'? – Matthias

ответ

0

Вы не должны добавлять заголовки к переменной SOURCE: Все элементы которые не являются .cpp, файлы идут непосредственно в TARGET, которые будут очищены.

Если имена заголовков соответствуют именам источников вы можете использовать:

# To obtain object files 
%.o: %.cpp %.h 
    $(CC) -c $(CC_FLAGS) $< -o [email protected] 

Однако тогда вы пропустите общие файлы заголовков. Наилучший подход - использовать автоматические отладки, как предлагает KeithSmith.

+0

Это все еще не работает, если я это сделаю, а затем внесем изменения в foo.hpp (в этом примере), когда я заново заработал, он не учитывает изменения в foo.hpp – user3223763

+0

Да, это было связано с неправильным Dest. См. Править. – Matthias

+0

Извините, что вы можете объяснить, как работают автозависимости – user3223763

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