0

这是 Linux 中制作文件的教程:http: //mrbook.org/tutorials/make/

这是一个make文件示例:

all: hello

hello: main.o factorial.o hello.o
    g++ main.o factorial.o hello.o -o hello

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

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

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

clean:
    rm -rf *o hello

对我来说,这条线令人困惑main.o: main.cpp 是什么意思?据我了解,这意味着目标main.o具有main.cpp依赖性。但是没有目标,main.cpp 这意味着目标(main.o)具有依赖项(main.cpp),而该依赖项(main.cpp)本身不是目标。那么它是什么(main.cpp)?

4

2 回答 2

2

main.cpp是一个文件

从扩展名来看,我们期望它是一个 c++ 源文件,并且相关的规则表明是这种情况。

该规则将在main.cppmain.o(这也是一个文件)更新的任何时间执行。

于 2012-11-19T19:41:46.220 回答
1

main.cpp是你的源代码。没有目标的事实main.cpp意味着 Make 无法生成该文件。您应该自己创建它。

于 2012-11-19T19:42:10.463 回答