Как скомпилировать заголовок, реализацию, файлы драйвера - PullRequest
2 голосов
/ 22 марта 2012

У меня есть три файла: movie.h (заголовок); movie.cpp (файл реализации); lab9.cpp (файл драйвера с использованием класса фильма)

Мне дали пример того, как сгенерировать make-файл для компиляции вышеуказанных файлов:

http://sci.tamucc.edu/~ptedford/1436Spr12/1436CommonFiles/MakeFileExample.txt

Тем не менее, мне все еще не удается понять концепцию здесь (я даже не знаю, где заполнить мои имена файлов, потому что имена файлов примеров приводят меня в замешательство (например: что должен представлять main.o здесь?) ).

Может ли кто-нибудь помочь мне разобраться в этом (решение с объяснением), так что он создает один исполняемый файл с именем lab9?

Редактировать: в моем make-файле есть следующее:

linkAndRun: lab9.o movie.o
        g++ movie.o lab9.o -o lab9

movie.o: movie.cpp movie.h
        g++ -c movie.cpp -o movie.o

lab9.o: lab9.cpp
        g++ -c lab9.cpp -o lab9.o

Я получаю несколько ошибок компиляции, но сама компиляция кажется успешной. Это правильно? Два ответа, представленные до сих пор, имели различия, поэтому я объединил то, что, по моему мнению, было правильным. Поэтому подтверждение поможет.

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Вот то, что вы ищете-

executeThis: lab9.o movie.o 
    g++ lab9.o movie.o -o lab9

lab9.o: lab9.cpp
    g++ -c lab9.cpp -o lab.o

movie.o: movie.cpp movie.h
    g++ -c movie.cpp -o movie.o
0 голосов
/ 22 марта 2012

Попробуйте:

(этот шаг связывает объектные файлы вместе и создает ваш исполняемый файл)

linkAndRun: movie.o lab9.o                 
   g++ movie.o lab9.o -o run

(этот шаг компилирует movie.cpp в объектный файл)

movie.o: movie.cpp 
   g++ -c movie.cpp -o movie.o

(этот шаг компилирует lab9.cpp в объектный файл)

lab9.o: lab9.cpp
   g++ -c lab9.cpp -o lab9.o

Я просто подставил ваши файлы в пример, исключая заголовочные файлы

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