我正在使用Delphi 2007.我知道如何让IDE编译器抑制/忽略特定警告。
但是如何让命令行编译器执行此操作?
答案 0 :(得分:2)
您使用-W-[WARNING]
选项。以下示例关闭 W1036(“变量%s可能尚未初始化”):
dcc32 test.dpr -W-USE_BEFORE_DEF
我发现找出要使用的警告名称的唯一方法是在IDE中创建一个简单的控制台项目,添加将产生您要识别的警告的代码,然后设置项目 - >选项 - 编译器 - 提示和警告来抑制该警告。然后构建您的项目。显示消息窗口,转到输出选项卡, Ctrl + A 到全选, Ctrl + C 到副本。
创建一个新的控制台应用程序。
program Test1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
WriteLn('Test1');
ReadLn;
end.
使用项目 - >选项 - >编译器 - >提示和警告,并关闭要抑制的警告。
Build build 02/05/2016 2:48:48 PM。
项目“E:\ Code \ Project1.dproj”(制作目标): 目标CoreCompile: c:\ rad studio \ 5.0 \ bin \ dcc32.exe -DDEBUG; DEBUG -I“c:\ rad studio \ 5.0 \ lib”;“c:\ rad studio \ 5.0 \ Imports”; “C:\ Users \ Public \ Documents \ RAD Studio \ 5.0 \ Dcp”; E:\ Code \ FastMM4; E:\ madCollection \ madBasic \ BDS4; E:\ madCollection \ madDisAsm \ BDS4; E:\ madCollection \ madExcept \ BDS4;“E:\ Code \ Virtual Treeview \ Source”; E:\ code \ Indy10_5294 \ Lib \ Core; E:\ code \ Indy10_5294 \ Lib \ System; E:\ code \ Indy10_5294 \ Lib \ Protocols; - SNIPPED ANSOHER DOZEN LINES - --no-config -W-USE_BEFORE_DEF Project1.dpr
构建成功。 0警告 0错误 时间流逝00:00:00.12
因此,我们已将 USE_BEFORE_DEF 识别为W1036的警告名称,以便与命令行编译器一起使用,并详细说明如何将其提供给编译器。
当然,您可以禁用多个警告以识别它们;我只是为了简单而使用了一个,并且删除了很多生成的命令行输出。