所以我在我的单位包括一些其他单位,在建立申请后,我收到了来自这些单位的大量警告。金额太大,以至于我在列表中找到自己的警告时遇到了问题。 ; - )
是否有一些编译器指令允许我关闭这些警告?但请注意,我不想以任何方式修改这些单位。我想实现这样的目标:
unit MyUnit;
interface
uses
UnitA, {$WARN EMIT_WARNNIGS OFF} UnitB, {$WARN EMIT_WARNNIGS ON} UnitC, UnitD.
implementation
uses
UnitE, {$WARN EMIT_WARNNIGS OFF} UnitF, UnitG, {$WARN EMIT_WARNNIGS ON} UnitH.
这是一个虚构的编译器指令,我想拥有它,或者它存在但我不知道它?
感谢您的时间。
答案 0 :(得分:7)
有一个编译器指令可以关闭警告,但这只能在项目选项中设置,在这种情况下它适用于所有单位,或者在单位本身中,在这种情况下它仅适用于该单位。
所以,你有几个选择。
完全符合您要求的不切实际的选项:
因此,唯一的解决方案是禁用项目中的警告,然后使用该指令在所有单位中启用它们。
最简单,最现实的选择:
编译单位一次,仅通过从库路径中删除源来使用DCU。如果您不想编辑它们,这是最简单的。
您仍然可以在浏览路径中添加它们,这与库路径不同。在这种情况下,使用DCU,但Delphi仍然可以找到源,因此您仍然可以在调试时导航它们。
小优势是构建项目的速度也更快,因为不需要在每次构建时重新编译这些单元。
最佳选择:
完全停止使用这些装置。有这么多警告的单位是劣质软件,可能会导致严重问题。
其他解决方案:
答案 1 :(得分:2)
不,我不相信有这样的指示。
我发现实现这一目标的唯一方法是
这将确保不会编译过滤,因此您不会被违规单位的警告所淹没。
当我不希望调试器进入它们时,这是我经常使用库单元(我们总是从源代码编译)的方法。我编译了发布配置(debug = off),然后选择了我不想介入的单元的dcu,并确保编译器在相应的pas文件之前找到它们。
一个警告:确保当你(需要)处理有问题的单位时,dcu会被移除,否则你会陷入很多困惑。 GExperts的“清理目录”可以帮助解决这个问题。
答案 2 :(得分:2)
我使用的是Delphi 7,这就是我的工作方式......
不要在项目.dpr中包含单位或者这不起作用,在项目选项的搜索路径上添加单元的文件夹。
然后在您使用它的每个单元中,使用这些编译器指令:
uses
{$WARNINGS OFF}{$HINTS OFF}
TheUnitHere;
{$WARNINGS ON}{$HINTS ON}