Amazon Best VPN GoSearch

OnWorks 网站图标

metalint - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 metalint

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 metalint,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


metalint - 元配置单元一致性检查器

概要


金属色 [-hklsv ] [-L DIR ]

商品描述


金属色 解析单元并执行一些广泛的一致性检查,以确保
整套是健全的。 由于可用的单位数量相对较多,它正在成为
手动维护单元非常困难,自动化过程可能是真实的
帮助,虽然不完美。

金属色 在顶级包目录中运行,用于确保
您自己的私人单位正确地依赖于公开可用的单位。 如果你
集中开发新单位,你应该跑 金属色 在他们公开之前
可用。

配置


金属色 识别以下选项集:

-h 打印简短的使用说明并退出。

-k 保持临时 。公吨 目录。

-l (尚未实现)默认情况下, 金属色 只报告有关的问题
你自己的私人单位。 这个开关指挥 金属色 还要报告
公开单位的问题。

-s 静音模式。

-L DIR 覆盖默认库位置。 通常只对元配置有用
维护人员在本地检查正在开发的单元而不是
公开可用的。 这 DIR 指定的是包含单位的那个
U 目录。

-V 打印版本号并退出。

诊断


以下诊断可能由 金属色:

“(?MAKE) 忽略重复的依赖项列表行。”
不止一个?MAKE:在单元中发现线轴承相关性。 可能有
尽管可能会出现多个 ?MAKE 动作线,但只有一个这样的线。

“(?MAKE) 特殊单元 'Xxx' 不应列为制造。”
特殊单位符号(首字母大写)只能在
特殊单位本身。 要在合法情况下禁止显示此警告,请在前面添加“+”
冒犯符号的(请注意,对于非特殊单位,此位置的“+”
表示不应出现在 config.sh 文件中的内部符号)。

“(?MAKE) '+xxx' 被列出 x 次。”
条件依赖被多次列出。 不过这是无害的。

“(?MAKE) 'xxx' 被列出 x 次。”
一个正常的依赖被多次列出。 再次,一个无害的错误。

“(?MAKE) 'xxx' 被列为条件依赖和完全依赖。”
Symbol 被列为正常依赖项和条件依赖项。 元配置
将此视为完全依赖,但这可能不是您最初的依赖
通缉...

“(?Y) 未知的布局指令 'xxx'。”
布局指令可能只是其中之一 最佳, 默认 or 底部, 但 case 没有
事情。 一个未知指令只是被忽略和处理,就好像 默认
指定的。

“(?S) 变量 '$xxx' 的重复描述。”
Shell 符号被多次描述,这将在
词汇表。

“(?S) 变量 '$xxx' 未在 ?MAKE: 行中列出。”
该单元描述了一个不能在外部使用的 shell 符号条目,因为没有
列为依赖项。

“(?S) 语法错误?S: 构造。”
自我解释。

“(?C) 符号‘XXX’的重复描述。”
C 符号被多次描述,这将在
词汇表。

“(?C) 语法错误?C: 构造。”
自我解释。

“(?H) 符号‘XXX’已被定义。”
显然,两条 ?H: 行定义了相同的 C 符号。

“(?H) 变量 '$xxx' 甚至没有在 ?MAKE: 行中列出。”
使用了一个变量,但未在依赖项行中列出。

“(?H) 部分已被 '?H:.' 终止。”
在第一个 '?H:.' 之后不能再有 ?H: 行标志着结束
部分。

“(?H) 不常见的 cpp 行应该用 '?%<:' 保护。”
所有 ?H: 被识别的行 元配置 从而 金属色 有他们的
包含在 config.h 中,如果没有,则由合适的符号自动保护
假如。 但是,无法识别的行必须用 '?%<:' 序列保护
如果未在配置中加载该单元,请避免将它们包含在内。

“(?H) 行不应在此处列出,而应在 '?C:' 中列出。”
只有 cpp 行应该出现在 ?H: 部分。 如果您要发表评论
关于符号,使用?C:。 如果你想评论某一代
序列,将它们放入 ?X: 注释中,以免它们进入 config.h。

“(?H) 约束 'xxx' 是一个未知符号。”
?H: 行的所有前导 ?sym: 约束都应该是有效的 shell 或 C
符号,单位定义。

“(?M) 语法错误?M: 构造。”
自我解释。

“(?M) 符号 'xxx' 已列在 ?M: 行中的 'yyy'。
尝试对符号 xxx 进行神奇的定义,但已经提供了另一个定义
单位 yyy。

“(?V) 非特殊单元中的可见声明被忽略。”
可见声明(?V:行)只能出现在特殊单位中。 否则,他们
毫无意义。

“(?V) 想要变量 '$xxx' 可见。”
无法创建想要的变量(描述为对 ?MAKE: 行的依赖)
可见,因为那没有任何意义:单元不能依赖它,然后
宣传它是本地定义的。

“(?V) 定义的变量 '$xxx' 可见。”
不能使定义的变量(在 ?MAKE: 行中列出)可见,因为
它也可以直接用于另一个单元。

“(?V) 变量 '$xxx' 已经由单位 yyy 可见。”
不一致的声明:两个单元使一个符号可见......

“(?V) 变量 '$xxx' 已在 yyy 中读写可见。”
该变量已经被另一个单元作为读写可见。

“(?V) 变量 '$xxx' 在 yyy 中已经只读可见。”
该变量已被另一个单元设为只读可见。

“(?W) 变量 '$xxx' 已经需要了。”
变量已经是需要的了,这里就没有必要明确要求了。

“(?W) 变量 '$xxx' 也在本地定义。”
想要的变量会与本地定义的变量冲突,并可能导致
获得垃圾值。

“(?W) 变量 '$xxx' 已在 ?W: 行中的 'yyy' 中列出。”
?W: 行的 shell 符号部分中的变量只能出现在一个单元中。

“(?F) 生成的文件 'xxx' 多次声明。”
该文件在 ?F: 行中以相同的名称多次列出。 这确实
声明私有 UU 文件和公共文件时不出现
名称,例如。

“(?F) 忽略非特殊单元中的 UU 文件。”
私有 UU 文件(即像 我的阅读 创建供以后阅读的脚本
配置) 只能在特殊单元中创建。 如果 ?F: 行,则允许例外
前面是适当的 ?LINT: 提示。

“(?T) 临时符号 '$xxx' 多重声明。”
自我解释。

“指令应该在 ?MAKE 声明之后。”
这条消息开头的 () 之间列出的指令应该真的来了
在 ?MAKE: 行之后。 您必须重新订购设备或 金属色 将不能够
正确诊断问题。

“控制序列 '?XXX:' 在正文中被忽略。”
尝试在单元主体中使用 ?X: 或 ?LINT: 以外的控制线,这应该
只是外壳代码

“变量 '$xxx' 已更改。”
在依赖项行中列为需要的变量已更改。 这样的变量应该
为单元只读。 使用 更改 lint 提示抑制此消息
病理病例。

“没有?MAKE:描述依赖关系的行。”
每个单元都应该有一个依赖行,否则它会被默默地忽略
元配置. 此消息被 ?LINT: 空提示抑制。

“第一条身体线条应该是一个通用的‘:描述’。”
将添加到生成的配置中的单元的第一个 shell 行
脚本应该在“:”行上包含对单位用途的描述。 必须有
':' 后面的空格,因为它由 shell 解释,并且描述
除非整个字符串都被引用,否则应该避免使用像 '(' 或 '>' 这样的元字符。这个
消息被 ?LINT: nocomment 提示抑制。

“':' 后缺少空格以使其成为评论。”
以 ':' 开头的行由 shell 解释,但将被忽略。 必有
在 ':' 后面加一个空格,否则 shell 会尝试执行一个未知的
命令...

“在注释行找到未加引号的元字符 >。”
以 ':' 开头的行由 shell 解释,但将被忽略。 这意味着
有意义的元字符,如 '(' 或 '>' 必须用引号引起来或转义
领先的反斜杠。

“在 ':' 注释行上发现悬空引用。”
在 ':' 注释行上发现了未封闭的单引号或双引号。 由于那些
行由 shell 解释,尽管被忽略,但所有引号都必须完美匹配。

“不以空行结尾。”
由于所有单位聚集在一起形成一个大脚本,因此建议
(因此由 金属色) 每个单元文件都以空行结尾。

“最后一行不以换行符结尾。”
这仅适用于其编辑器并不总是在以下位置附加换行符的用户
文本文件的结尾。 使用时不应该发生 vi.

“没有描述符号‘$xxx’。”
本单元定义的外壳符号没有记录。 使用 描述 棉绒提示
抑制此消息。

“没有描述 C 符号‘XXX’。”
本单元定义的 C 符号没有记录。 使用 已知 lint 提示
抑制此消息。

“C 符号 'XXX' 未由任何 ?H: 行定义。”
AC 符号是由 never defined 广告的,因此它不能出现在 配置文件
文件,因此是无用的...

“变量 '$xxx' 应该已经设置了。”
由单元生成的在 make 行中列出的变量不是由 shell 代码设置的
身体。 使用 lint 提示在病理情况下抑制此消息。

“未使用的依赖变量‘$xxx’。”
显然,shell 变量没有使用。 使用 更改 or 使用 棉绒提示
(视情况而定)抑制此消息。

"未使用的条件变量 '$xxx'。
显然,这种条件依赖没有使用。 这 更改 or 使用 皮棉
提示可用于抑制此消息。

“未使用的临时变量 '$xxx'。”
不使用在 ?T: 行中声明为临时的变量。 这 使用 lint 提示将
傻瓜 金属色 认为它确实被使用了。

“未知的控制序列 '?XXX:'。”
尝试使用未知的控制序列。

“未知的 LINT 请求 'false' 被忽略。”
使用了未知的 ?LINT: 标签。 所有这些标签都必须以小写形式拼写。

“符号‘$xxx’没有默认值。”
在某些单元中用作条件依赖的符号没有由 a 设置的默认值
?D:行。

“陈旧?MAKE:依赖'xxx'。”
Unit 将符号列为依赖项,但该符号在其他方面是未知的,即
永远不会像任何其他单位制造的那样出现。

“符号 '$xxx' 从 ?MAKE 中丢失。”
使用或定义的符号未在 ?MAKE: 行中列为依赖项。

“从 ?MAKE 中缺少 xxx 以显示 '$yyy'。”
使用了由特殊单位定义为可见的符号,但该特殊单位不是
依赖线的一部分。

“陈旧?M:依赖'xxx'。”
魔术线将 C 符号列为依赖项,但任何单位都不知道该符号。

“未知符号‘$xxx’。”
我不知道这个符号是什么。 如果变量是外部定义的,这
可以通过适当的 ?LINT: extern 抑制警告。

“只读符号 '$xxx' 已设置。”
应该是只读的符号由单元的 shell 代码体设置。

“使用了过时的符号‘xxx’。”
单元的 shell 代码中使用了一个过时的符号。

“设置了未声明的符号 '$xxx'。”
该单元尝试设置一个未以其他方式声明为 made 的 shell 变量
或作为临时变量,或其他什么。

“未关闭?H:部分。”
?H: 部分没有以单个“?H:.”结尾在正文之前的行
单元或另一个 ?C: 部分的开始。

“C 符号‘xxx’以下列单位定义:”
C 符号以多个单位定义。 违规单位被列出。

“外壳符号‘xxx’按以下单位定义:”
一个外壳符号以多个单元定义。 违规单位跟在后面。

“外壳符号'xxx'完全是:”
外壳符号由某些单元定义,被其他单元废弃并用作临时符号。

“外壳符号 'xxx' 已定义且已过时:”
自我解释。

“外壳符号 'xxx' 已定义并用作临时:”
自我解释。

“外壳符号 'xxx' 已过时,也用作临时:”
自我解释。

“'$xxx' 的定义没有被 '?S:.' 关闭。”
自我解释。

“'XXX' 的定义不是由 '?C:.' 关闭的。”
自我解释。

“'xxx' 的神奇定义没有被 '?M:.' 关闭。”
自我解释。

“变量 '$xxx' 是在外部定义的。”
使用外部定义的变量(即在另一个单元中),没有适当的
依赖信息。 使用 外部 lint 提示以抑制此消息。

“未创建文件‘xxx’。”
列为私有 UU 文件的文件不是由特殊单元创建的。 创造是
通过查看到文件的显式 shell 重定向来检测,而不是通过隐式
创建(例如 C 编译)。 所有特种部队都应该
无论如何只显式创建 shell 脚本,因此无法通过以下方式抑制此消息
棉绒提示。

“本地文件 'xxx' 可能会覆盖由 'unit.U' 设置的文件。”
您正在尝试创建本地文件,但特殊单元创建了一个方位
完全相同的名称,应该在之前加载 配置, 你会
覆盖该文件。 更改本地文件的名称。

“未使用的临时文件 'xxx'。
该文件是在 ?F: 行声明的,但似乎没有在任何地方使用。

“误用了临时文件 'xxx'。
已在 ?F: 行上声明了一个本地临时文件,其使用方式是
可能不是正确的。 实际上,所有这些本地文件都应该使用
显式相对路径,以避免可能为您提供另一个文件的 PATH 查找。

“你可能不会总是从'unit.U'中得到文件'xxx'。”
您似乎正在调用指定的文件,但不是通过使用显式亲属
路径名。 依靠 PATH 来查找此文件是不安全的。 为了解决这个问题,
使用类似的东西调用您的文件 ./xxx.

“从 ?MAKE 中丢失了用于私有文件 'xxx' 的单元。”
您正在使用私有 UU 文件,但没有列出生成它的特殊单元
你的依赖线。 将该单元添加到您的依赖项列表中。

“未知的私人文件‘xxx’。”
该文件没有出现在任何 ?F: 行上; 然而它应该。

“文件‘xxx’按以下单位定义:”
列出的单位似乎无法就谁定义文件达成一致。

“此处为空 - 不鼓励文档名称。”
您应该避免在此处的文档中使用空名称,因为 金属色 不会
监控那些。

“未关闭的此处-文档 xxx 从第 x 行开始。”
在第 x 行打开的 here-document 从未在本单元中关闭。 这一般
意味着当单元被使用时,生成的脚本将不起作用!

“虚假的‘LINT xxx’指令。”
您插入了一个不用于关闭警告的 ?LINT: 指令。

“找到的周期为:”
为列出的符号找到了一个依赖循环。 只涉及符号
在循环中列出。

“循环涉及:”
列出了找到循环的依赖项的摘录。 这可能涉及
比上一条消息多得多的符号,因为 金属色 实际上重新扫描
规则强调循环并在找到一个时停止,即它没有
尝试将其最小化(使用另一种算法找到循环,不幸的是
不能吐出来,只能说肯定有)。

参考


金属色 使用以下控制线,否则会被忽略 元配置:

?五:唯读 符号:读写 符号
此行应仅用于特殊单位。 它列出了所有的 shell 变量
由不应被其他单元直接用作依赖项的单元定义:
如果他们使用任何
此处描述的符号。 这些可以被视为导出的符号
从单元继承时继承。 符号可以以只读方式导出或
读写。

?F: 创建
这条线有两个目的:它是一个 金属色 提示,也是一个占位符
未来 杰作 用。 它必须列出三种文件:临时文件是
为测试而创建,在 UU 目录中创建的私有 UU 供以后使用
仔细阅读,公共的留在包的根目录中。 暂时的
文件必须以前面的“!”列出字符(意思是“不!它们不会被重复使用
稍后!”),私有 UU 文件前面应该有一个 './'(意思是:要使用它们,比如说
。/文件,不只是 文件),公共的应该按原样命名。

?T: 临时工
这一行应该列出所有在单元内用作临时变量的 shell 变量
身体。 这行应该保持准确,防止你写一个单元
定义一个符号,该符号将用作另一个单元中的临时变量...

?皮棉:关键词 符号列表
指定 lint 提示。 以下关键字可用:

更改 shell 变量可以更改
创建信息图 持久文件可以由非特殊单位创建
定义 列出的 shell 变量在本单元中定义
描述 列出的 shell 变量由 ?S 描述:
外部 已知的外部定义变量
空的 单元文件为空,仅作为占位符保留。
已知 列出的 C 变量被描述
没有意见 单元文件很特殊,可能会错过前导的“:描述”行。
不在这里 列出的名称不是此处的文档(例如,C 中的“1 << foo”
程序)
列出的变量已设置
使用 本单元使用列出的变量
未关闭 此处列出的文件名称未在本单元中关闭
使用文件 使用列出的文件(不要在名称前加上“!”作为临时
那些)

作者


哈兰·斯坦恩[电子邮件保护]> 编写了第一个版本,基于 Larry Wall 的
元配置 从发行版 2.0.
拉斐尔·曼弗雷迪[电子邮件保护]> 从头开始​​为 3.0 重写了一些
增强功能。

使用 onworks.net 服务在线使用 metalint


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。