Merge branch 'main' into fix-pdf-build

This commit is contained in:
Dongdong Tian 2022-04-27 21:01:44 +08:00
commit b31b793abe
3 changed files with 5 additions and 5 deletions

View File

@ -1,8 +1,8 @@
跟我一起写Makefile (PDF重制版)
##############################
.. image:: https://travis-ci.org/seisman/how-to-write-makefile.svg?branch=master
:target: https://travis-ci.org/seisman/how-to-write-makefile
.. image:: https://github.com/seisman/how-to-write-makefile/actions/workflows/deploy.yml/badge.svg
:target: https://github.com/seisman/how-to-write-makefile/actions/workflows/deploy.yml
简介
----

View File

@ -1,4 +1,4 @@
sphinx==1.8.5
sphinx
sphinx_rtd_theme
sphinx-cjkspace
pygments

View File

@ -86,7 +86,7 @@ make会在自己的“隐含规则”库中寻找可以用的规则如果找
#. 编译C++程序的隐含规则。
``<n>.o`` 的目标的依赖目标会自动推导为 ``<n>.cc`` 或是 ``<n>.C`` ,并且其生成命令是
``$(CXX) c $(CPPFLAGS) $(CFLAGS)`` 。(建议使用 ``.cc`` 作为C++源文件的后缀,而不是 ``.C``
``$(CXX) c $(CPPFLAGS) $(CXXFLAGS)`` 。(建议使用 ``.cc`` 作为C++源文件的后缀,而不是 ``.C``
#. 编译Pascal程序的隐含规则。
@ -336,7 +336,7 @@ make就会规则下的命令所以在模式规则中目标可能会是
- ``$+`` : 这个变量很像 ``$^`` ,也是所有依赖目标的集合。只是它不去除重复的依赖目标。
- ``$*`` : 这个变量表示目标模式中 ``%`` 及其之前的部分。如果目标是 ``dir/a.foo.b`` ,并且
目标的模式是 ``a.%.b`` ,那么, ``$*`` 的值就是 ``dir/a.foo`` 。这个变量对于构造有关联的
文件名是比较有。如果目标中没有模式的定义,那么 ``$*`` 也就不能被推导出,但是,如果目标文件的
文件名是比较有。如果目标中没有模式的定义,那么 ``$*`` 也就不能被推导出,但是,如果目标文件的
后缀是make所识别的那么 ``$*`` 就是除了后缀的那一部分。例如:如果目标是 ``foo.c`` ,因为
``.c`` 是make所能识别的后缀名所以 ``$*`` 的值就是 ``foo`` 。这个特性是GNU make的
很有可能不兼容于其它版本的make所以你应该尽量避免使用 ``$*`` ,除非是在隐含规则或是静态