Makefile изменить, чтобы выбрать между файлами другого формата - PullRequest
0 голосов
/ 08 апреля 2020

В настоящее время у меня есть файлы в формате. c и. cpp в моем проекте. Я хотел автоматизировать создание объектного файла в Makefile, чтобы динамически выбирать файл. c или. cpp в зависимости от доступности файла.

В настоящее время

obj/%.o : %.cpp
    $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<

Пример решения

obj/%.o : %.cpp (OR) %.c
    $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<

Есть какое-нибудь решение для этого? Спасибо.

1 Ответ

2 голосов
/ 08 апреля 2020

Просто сделайте два разных правила. В любом случае, вы не хотите использовать один и тот же рецепт для обоих (вы не хотите использовать компилятор C ++ для компиляции C кода).

obj/%.o : %.cpp
        $(CXX) $(MKDEPEND) -c -o $@ $(CXXFLAGS) $(INCDIRS) $<

obj/%.o : %.c
        $(CC) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<

Make будет пытаться соответствовать обоим правилам и использовать какой бы ни один соответствовал, игнорируя другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...