Merge branch 'main' into fix-pdf-build
This commit is contained in:
commit
b31b793abe
@ -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
|
||||
|
||||
简介
|
||||
----
|
||||
|
@ -1,4 +1,4 @@
|
||||
sphinx==1.8.5
|
||||
sphinx
|
||||
sphinx_rtd_theme
|
||||
sphinx-cjkspace
|
||||
pygments
|
||||
|
@ -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,所以,你应该尽量避免使用 ``$*`` ,除非是在隐含规则或是静态
|
||||
|
Loading…
x
Reference in New Issue
Block a user