Makefile с файлами реализации и заголовками - PullRequest
1 голос
/ 05 мая 2020

Каждый вопрос, который я видел здесь, касается гораздо более сложных вариантов использования, чем я.

Я учусь на первом курсе программирования и просто не могу понять, что я делаю неправильно. При запуске make я просто получаю сообщение Circles is up to date.

У меня есть три файла:

main. cpp => точка входа для программы

CircleDriver . cpp => файл реализации

circle.h => файл заголовка, содержащий класс заголовка.

main. cpp зависит от CircleDriver. cpp и circle.h , CircleDriver. cpp зависит от circle.h

В настоящее время мой Makefile выглядит так:

Circles: main.o
    g++ -std=c++11 -g -Wall main.o -o Circles

main.o: main.cpp
    g++ -std=c++11 -g -Wall -c main.cpp CircleDriver.cpp

clean:
    rm *.o Circles

Я читал, что вам не нужно включать файлы заголовков в команду компиляции, но добавление другого файла. cpp не решило мою проблему.

Я уверен, что это простая проблема, но около 30 минут поиска в Google не дали результатов.

Спасибо за заранее.

1 Ответ

0 голосов
/ 05 мая 2020

Обычно я делаю что-то подобное для своего Makefile:

%.o: %.cpp
    g++ -c -o $@ $< -std=c++11 -Wall

Circles: main.o CircleDriver.o
    g++ -o $@ $^ -std=c++11 -Wall

clean:
    rm *.o *~

Это создаст объектные файлы для каждого. cpp файла, а затем использую объектные файлы для создания Кругов.

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