This commit is contained in:
Dongdong Tian
2016-02-17 16:44:09 +08:00
parent af8550262e
commit eead23a313
6 changed files with 23 additions and 61 deletions

View File

@@ -7,7 +7,6 @@
好了,还是让我们来看一看如何书写规则。
规则举例
--------
@@ -100,11 +99,9 @@ prerequisites也就是目标所依赖的文件或依赖目标。如果其
objects := $(wildcard *.c)
#. 列出(1)中所有文件对应的 ``.o`` 文件3中我们可以看到它是由make自动编译出的
#. 列出(1)中所有文件对应的 ``.o`` 文件3中我们可以看到它是由make自动编译出的::
.. code-block:: makefile
$(patsubst %.c,%.o,$(wildcard *.c))
$(patsubst %.c,%.o,$(wildcard *.c))
#. 由(1)(2)两步,可写出编译并链接所有 ``.c````.o`` 文件
@@ -312,9 +309,7 @@ $(filter %.o,$(files))表示调用Makefile的filter函数过滤“$files”
main.o : main.c defs.h
但是如果是一个比较大型的工程你必需清楚哪些C文件包含了哪些头文件并且你在加入或删除头文件时也需要小心地修改Makefile这是一个很没有维护性的工作。为了避免这种繁重而又容易出错的事情我们可以使用C/C++编译的一个功能。大多数的C/C++编译器都支持一个“-M”的选项即自动找寻源文件中包含的头文件并生成一个依赖关系。例如如果我们执行下面的命令
.. code-block:: makefile
但是如果是一个比较大型的工程你必需清楚哪些C文件包含了哪些头文件并且你在加入或删除头文件时也需要小心地修改Makefile这是一个很没有维护性的工作。为了避免这种繁重而又容易出错的事情我们可以使用C/C++编译的一个功能。大多数的C/C++编译器都支持一个“-M”的选项即自动找寻源文件中包含的头文件并生成一个依赖关系。例如如果我们执行下面的命令::
cc -M main.c