返回介绍

#7. 再谈 make

发布于 2024-10-10 23:21:41 字数 1207 浏览 0 评论 0 收藏 0

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 的更多信息,请参见:

http://www.gnu.org/software/make/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文