我有三个文件: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
我遇到了几个编译错误,但编译本身似乎很成功。它是否正确?到目前为止提供的两个答案都有差异,所以我将感觉的内容结合起来是正确的。所以确认会有所帮助。
答案 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