文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
#7. 再谈 make
make 是构建 C 程序的强大工具,但在本书中你只使用过一些简单的命令。为了看到更多 make 神奇的功能,请阅读 Robert Mecklenburg 的《GNU Make 项目管理》:
http://shop.oreilly.com/product/9780596006105.do
这里先列举 make 的一些特性。
变量
变量可以大大缩短你的 makefile,例如你想把一组标准的命令行选项传给 gcc ,就可以把它们定义成变量:CFLAGS = -Wall -Wextra -vfred: fred.c gcc fred.c
$(CFLAGS) -o fred
可以用等号(=)定义变量,然后用$(...) 读取变量的值。
使用%、^和 @
很多编译命令看起来都很像:fred: fred.cgcc fred.c -Wall -o fred
这时你可以用%符号写一条更通用的“目标/生成方法”:
这些符号看起来有些奇怪。假设你想创建一个叫 fred 的文件,这条规则会让 make 去寻找一个叫 fred.c 的文件,然后生成方法会运行一条 gcc 命令,用依赖项(由特殊符号$^ 给出)创建目标 fred(由$@ 给出)。
隐式规则
make 工具对编译过程一清二楚,即使你不告诉它如何构建文件,它也可以使用隐式规则自行构建。例如,你有一个叫 fred.c 的文件,但没有 makefile,可以用以下命令编译它:
原因是 make 内置了一批生成方法。关于 make 的更多信息,请参见:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论