DCC32命令行编译器成功完成,但不生成EXE文件

Dis*_*ned -1 delphi dcc32

我正在使用Delphi 5命令行编译器来进行构建.构建不会报告任何错误,但它也不会生成EXE文件.

我可以确认以下内容:

  • 通过IDE执行相同的构建行为正确.
  • IDE与DCC32构建之间的源代码或选项没有区别.
  • 问题只发生在完整版本上.即,首先使用-B选项进行构建,然后使用一个不进行构建,'compile'正确生成EXE文件.
  • 使用命令行上的-E开关强制生成无效的构建输出路径不会报告错误 - 就好像甚至没有尝试生成EXE文件一样.
  • 其他项目确实正确构建.
  • 我已禁用防病毒软件,因此可以确认这不是问题所在.

编辑虽然我在Delphi 5中遇到过这种情况,但并不是特定于该版本.在德尔福的Bug列表证实至少D4-D6的问题.

Mic*_*las 5

您可以使用SysInternale/Microsoft的ProcessMonitor来研究.exe创建.运行procmon.exe并添加带有"Path""contains"(您的exe名称)的过滤器,然后"include".

在我的环境编译中t.pas给出:

    12:09:58,1927245    DCC32.EXE   3596    CreateFile  C:\tmp\t.exe    SUCCESS Desired Access: Generic Write, Read Attributes, Disposition: OverwriteIf, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: 0, OpenResult: Overwritten
    12:09:58,1928116    DCC32.EXE   3596    CreateFile  C:\tmp\t.exe    SUCCESS Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Complete If Oplocked, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    12:09:58,1928281    DCC32.EXE   3596    QueryFileInternalInformationFile    C:\tmp\t.exe    SUCCESS IndexNumber: 0x46b00000000c296
    12:09:58,1928376    DCC32.EXE   3596    CloseFile   C:\tmp\t.exe    SUCCESS 
    12:09:58,1961352    DCC32.EXE   3596    WriteFile   C:\tmp\t.exe    SUCCESS Offset: 0, Length: 19 968
    ....
Run Code Online (Sandbox Code Playgroud)

也许是虫子dcc32