(13)接着开始一个更复杂的例子,课程的素材 2 ,先给出书写 makefile 的框架 :
++ 要编译的程序的源代码组成:
(14) 书写依赖关系的时候, 源文件里包含 的自定义头文件,也要写进依赖关系里,系统库的头文件则不用包含:
(15)可以用 g++ -MM y.cpp 命令来让系统帮助生成依赖关系:
++再用 g++ -MM 分析另一个 .cpp 文件的依赖关系:
(16) 如何从 windows 里的命令行 dos 窗口中复制 文本:
++ 其实感觉就是鼠标左键点击开头部分,拉动着选择到结尾,再点击右键,就可以了,内容就到剪贴板了。不是左键,就是右键。
(17) 最终得到的配套源文件的 makefile 如下:
++ 用 make 运行一下:
++对写好的 makefile 文件,老师再解释一下,如果一个目标跟最终的目标没有直接或间接的依赖关系,是不会被 make 自动执行的。这样的目标需要手动执行 : make 目标名。不仅仅是 clean 语义,别的名称的 .o 文件也一样,不与最终目标有联系,就不会被自动编译:
++ 测试一下不在依赖里面写 .h 头文件,可见也是可以的:
++补充笔记:
++ makefile 中的第一个目标会被认为是最终目标:
++ 改变 makefile 文件里的最终目标:
++ 指定 makefile 的最终目标:
(18)声明伪目标,来解决与同名目标名的冲突 :
PHONY 也是一条规则,只是这条规则只有目标和依赖,没有方法。
++ 伪目标的另一种用法:
(19) 学习依赖的两种类型:
++ 以下在 ubantu 上 make 了一下,报错,先不研究为啥了,老师以前说过,windows 每次都强制执行链接。所以要在 linux 来测试:
(20) 又一个知识点,如何让 windows 上的命令行窗口大一点:
(21)
谢谢