Linux编译技术.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux编译技术

Linux编译技术 单旻 主要内容 • makefile • Autoconf ,Automake and Libtool • Go4IT 参考资料 • GNU Make (中文版) • Automake • Autoconf • Libtool • makefile基础 Makefile简介 • Makefile文件描述了整个工程的编译、连 接等规则。其中包括: 工程中的哪些源文件需要编译以及如何 编译 需要创建那些库文件以及如何创建这些 库文件 如何最后产生我们想要得可执行文件 • Make不仅仅可以用来编译源代码,它也 可以完成一些其它的功能 单个文件编译执行 • g++ stlfill.cpp -o stlfill • ./stlfill • stlfill.cpp包含了程序的全部源代码,可直接 编译 • 把stlfill.cpp拆分成多个文件 (fill_stl_main.cpp、EdgeNode.h 、 EdgeNode.cpp 、ActiveEdgeNode.h 、 ActiveEdgeNode.cpp ) 简单的Makefile • stlfill : EdgeNode.o ActiveEdgeNode.o fill_stl_main.o • g++ -o stlfill EdgeNode.o ActiveEdgeNode.o \ fill_stl_main.o • EdgeNode.o : EdgeNode.cpp EdgeNode.h • g++ -c EdgeNode.cpp • ActiveEdgeNode.o : ActiveEdgeNode.cpp ActiveEdgeNode.h • g++ -c ActiveEdgeNode.cpp • fill_stl_main.o: fill_stl_main.cpp • g++ -c fill_stl_main.cpp • clean : • rm stlfill EdgeNode.o ActiveEdgeNode.o fill_stl_main.o • make命令编译 • make clean 命令删除编译产生的文件 Makefile规则 • TARGETS : PREREQUISITES • COMMAND • ... • 或者: • TARGETS : PREREQUISITES ; COMMAND • COMMAND • ... • target :规则的目标。通常是最后需要生 成的文件名或者为了实现这个目的而必 需的中间过程文件名。也可以是一个 make执行的动作的名称,如目标“clean”, 我们称这样的目标是“伪目标”。 • prerequisites :规则的依赖。生成规则目 标所需要的文件名列表。通常一个目标 依赖于一个或者多个文件。 • command :规则的命令行。是规则所要执行的 动作(任意的shell命令或者是可在shell下执行 的程序)。它限定了make执行这条规则时所需 要的动作。 • 注意:每一个命令行必须以[Tab]字符开始, [Tab]字符告诉make此行是一个命令行。 • Makefile 中“规则”就是描述在什么情况下、 如何重建规则的目标文件,通常规则中包括了 目标的依赖关系(目标的依赖文件)和重建目 标的命令 • 默认的情况下,make执行的是Makefile 中的 第一个规则,此规则的第一个目标称之为 “最终目的”或者“终极目标”(就是一个 Makefile最终需要更新或者创建的目标,上例 中stlfill )。

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档