尝试写个Makefile

文件

按照 Think-Cpp的进度写了关于时间的程序。文件夹里有三个文件。

  1. Time.h
  2. Time.cpp
  3. main.cpp

不用Makefile

如果不用Makefile

g++ -c Time.cpp  # 生成目标文件
g++ -c main.cpp
g++ Time.o main.o -o main #链接生成可执行文件

现在这样还不算多,但是日后文件多起来了,一个个的输就输不来了。
这就是 make 登场的时候了。
当然你还可以用g++ main.cpp Time.cpp -o main 来生成可执行文件。

make

make 是一个用于控制复杂程序中那些部分需要被编译形成可执行文件的开源软件。当然它也可以用来安装软件。

Makefile

Makefile 的作用就是用来告诉 make 文件要按怎样的顺序怎样的方式来编译。

根据 make 官方文档,Makefile 的语法如下

1
2
3
target:   dependencies ...
commands
...

target 目标文件,即要生成的文件。
dependencies 依赖,即要生成目标文件用到的文件。
commands 命令,指的是要生成目标文件用到的 shell 命令。

对这个程序写 Makefile

根据不用 Makefile 时的操作,按照格式来写。

1
2
3
4
5
6
7
8
9
10
11
12
13
main: main.o Time.o # 要生成main的可执行文件要依赖 main.o 和 Time.o
g++ main.o Time.o -o main # 用到的命令,缩进一定要有
Time.o:Time.cpp Time.h
g++ -c Time.cpp
main.o:main.cpp Time.h
g++ -c main.cpp

clean: #这样只要输入 make clean 就可以把生成的目标文件清掉
rm main
install:
cp main /bin #安装的过程其实就是将文件复制到 /usr/local/bin
uninstall:
rm /bin/main #同理有卸载
0%