2013-03-18 2 views
0

В настоящее время я пишу makefile, который способен скомпилировать разные цели (например, Debug, Development, Release). Связывающие и составление правил выглядеть:Сделать правило шаблона не распознано

$(DEVELOPMENT_OUT): $(subst rep,development,$(OBJS)) 
    g++ -o $(DEVELOPMENT_OUT) $(subst rep,development,$(OBJS)) 

obj/development/%.o: src/%.cpp 
    g++ -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "[email protected]" "$<" 

Теперь я получаю этот выход:

make: *** No rule to make target 'obj/development/Main.o', needed by 'bin/Development.exe'. Stop. 

Но не шаблонное правило применяется для main.o?

Я использую GNU Make 3.82.90 MinGW.

ответ

1

Здесь не хватает информации, чтобы сказать, почему он не работает. Если вы уверены, что у вас есть файл src/Main.cpp, тогда make должен выбрать это правило. Является ли файл cpp исходным файлом или сгенерированным файлом? Если он сгенерирован, возможно, реальная проблема ниже, когда происходит генерация. Вы можете попробовать использовать make -d, чтобы узнать, что делает make и почему ему не нравится это правило.

+0

да, я забыл создать файл –

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