这是命令 makedepend 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
makedepend - 在 makefile 中创建依赖项
概要
依赖 [ -D姓名=DEF [ -D姓名 [ -I包括 [ -Y包括 [ -a [ -f生成文件
[ -包括 文件 [ -o对象后缀 [ -p对象前缀 [ -s绳子 [ -w宽度 [ -v [ -m ]
[-- 其他选择 --] 源文件 ...
商品描述
依赖 程序读取每个 源文件 按顺序并像 C- 一样解析它
预处理器,处理所有 #包括, #定义, #undef, #ifdef, #ifndef, #万一, #如果,
#elif 和 的#else 指令,以便它可以正确地告诉哪个 #包括, 指令将
在编译中使用。 任何 #包括, 指令可以引用具有其他
的#include 指令,解析也将发生在这些文件中。
每个文件 源文件 包括,直接或间接,是什么 依赖 调用一个
依赖性。 然后将这些依赖项写入 生成文件 以这样的方式 使(1)
将知道当依赖项发生变化时必须重新编译哪些目标文件。
默认情况下, 依赖 将其输出放在名为 生成文件 如果存在,
除此以外 生成文件。 可以使用以下命令指定备用的 makefile -f 选项。 它首先
在 makefile 中搜索该行
# 不要删除这一行——make 依赖于它。
或提供 -s 选项,作为依赖输出的分隔符。 如果发现
它,它将删除此之后的所有内容到 makefile 的末尾并将输出
在这一行之后。 如果没有找到,程序会将字符串附加到末尾
生成文件并在其后放置输出。 对于每个 源文件 出现在
命令行, 依赖 将行放在表单的 makefile 中
源文件.o:dfile ...
其中 源文件.o 是来自命令行的名称,其后缀替换为“.o”,
和 文件 是在 a 中发现的依赖项 的#include 解析时的指令 源文件 or
它包含的文件之一。
例
通常情况下, 依赖 将在 makefile 目标中使用,以便键入“make Depend”
为 makefile 更新依赖项。 例如,
SRCS = 文件 1.c 文件 2.c ...
CFLAGS = -O -DHACK -I../foobar -xyz
依靠:
makedepend--$(CFLAGS)--$(SRCS)
配置
该程序将忽略它不理解的任何选项,以便您可以使用
与您相同的论点 cc(1)。
-D姓名=DEF or -D姓名
定义。 这定义了 姓名 in makedepend 的 符号表。 没有
=定义 符号被定义为“1”。
-I包括
包括目录。 这个选项告诉 依赖 前置 包括 到它的清单
遇到目录时要搜索的目录 的#include 指示。 默认情况下,
依赖 只搜索标准包含目录(通常 / usr / include 和
可能是编译器相关的目录)。
-Y包括
用单个指定的包含替换所有标准包含目录
目录; 你可以省略 包括 简单地防止搜索标准
包括目录。
-a 将依赖项附加到文件末尾而不是替换它们。
-f生成文件
文档名称。 这允许您指定一个备用生成文件,其中 依赖 能够
放置其输出。 指定“-”作为文件名(即 -F-) 将输出发送到
标准输出而不是修改现有文件。
-包括 文件
处理文件作为输入,并在处理之前包含所有结果输出
常规输入文件。 这与指定文件是包含文件具有相同的影响
出现在常规输入文件的第一行之前的语句。
-o对象后缀
目标文件后缀。 一些系统可能有后缀是什么的目标文件
除了“.o”。 此选项允许您指定另一个后缀,例如 ``.b''
-ob 或 ``:obj'' 与 -o:对象 等等。
-p对象前缀
目标文件前缀。 前缀被添加到对象文件的名称之前。 这是
通常用于为目标文件指定不同的目录。 默认是
空字符串。
-s绳子
起始字符串分隔符。 此选项允许您为
依赖 在 makefile 中查找。
-w宽度
行宽。 一般, 依赖 将确保它写入的每个输出行
为便于阅读,宽度不超过 78 个字符。 此选项启用
你改变这个宽度。
-v 详细操作。 此选项导致 依赖 发出包含的文件列表
通过每个输入文件。
-m 警告多重包含。 此选项导致 依赖 产生警告,如果
任何输入文件都不止一次地包含另一个文件。 在以前的版本中
依赖 这是默认行为; 默认已更改为更好
匹配 C 编译器的行为,它不考虑多重包含
是一个错误。 提供此选项是为了向后兼容,并有助于
调试与多重包含相关的问题。
-- 选项 --
If 依赖 在参数列表中遇到双连字符 (--),然后任何
后面的未被识别的参数将被默默忽略; 第二个双连字符
终止这种特殊待遇。 通过这种方式, 依赖 可以安全地
忽略通常可以在 CFLAGS 中找到的深奥的编译器参数 使
宏(见 例 上一节)。 所有选项 依赖 承认和
出现在一对双连字符之间的都是正常处理的。
算法
该程序中使用的方法使其运行速度比任何方法都快一个数量级
我见过的其他“依赖生成器”。 这场表演的核心是两个
假设:由单个 makefile 编译的所有文件将被粗略地编译
相同 -I 和 -D 选项; 并且单个目录中的大多数文件将主要包括
相同的文件。
鉴于这些假设, 依赖 期望为每个 makefile 调用一次,所有
由出现在命令行上的 makefile 维护的源文件。 它解析
每个源文件和包含文件恰好一次,为每个文件维护一个内部符号表。
因此,命令行上的第一个文件将花费与
普通 C 预处理器花费的时间。 但是在后续文件中,如果它
遇到一个它已经解析过的包含文件,它不会再次解析它。
例如,假设您正在编译两个文件, 文件1.c 和 文件2.c, 他们每个人都包括
头文件 标题.h, 和文件 头文件.h 依次包含文件 def1.h 和
def2.h 运行命令时
makedepend 文件1.c 文件2.c
依赖 会解析 文件1.c 因此, 头文件.h 然后 def1.h 和 def2.h It
然后决定这个文件的依赖关系是
file1.o: header.h def1.h def2.h
但是当程序解析 文件2.c 并发现它也包括 标题.h, 它确实如此
不解析文件,而只是添加 标题.h, def1.h 和 def2.h 到列表中
依赖关系 文件2.o
使用 onworks.net 服务在线使用 makedepend