如何编译头,实现,驱动文件

时间:2012-03-22 03:06:22

标签: c++ compilation

我有三个文件:movie.h(标题); movie.cpp(实施文件); lab9.cpp(使用电影类的驱动程序文件)

我得到了关于如何生成makefile以编译上述文件的示例:

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

但是,我仍然难以理解这里的概念(我甚至不知道在哪里填写我的文件名,因为示例文件名混淆了我(例如:什么是main.o应该代表这里?) )。

有人可以帮助我理解这个问题(带有解释的解决方案),这样就可以生成一个名为lab9的可执行文件吗?

编辑:我的makefile中有以下内容:

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 :(得分:0)

试试这个:

(此步骤将目标文件链接在一起并生成可执行文件)

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

我刚刚将您的文件替换为示例,不包括头文件

答案 1 :(得分:0)

以下是您要找的内容 -

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