【发布时间】:2016-01-05 23:38:54
【问题描述】:
我的产品正在从 Delphi 6 迁移到较新的 Delphi XE3。 Delphi 6 编译器用于输出已编译为可执行文件的文件列表:
Borland Delphi Version 14.0
Copyright (c) 1983,2002 Borland Software Corporation
ProjectName.dpr(X)
...
PathToSomeUnit.pas(X)
...
PathToSomeIncludedFile.inc(X)
...
X lines, X.XX seconds, X bytes code, X bytes data.
其中“X”表示一些数字
我们有一个内部软件,用于分析应用程序和特定文件(单元和包含文件)之间的依赖关系。该软件使用 dcc32 控制台输出(如上图)作为其输入。
在新的 Delphi XE3 中,我们不再直接调用 dcc32,而是使用 MSBuild。不幸的是,控制台输出与 Delphi 6 不同。当禁用“安静编译”选项时,控制台输出有多个空行代替已编译文件列表。
Embarcadero Delphi for Win32 compiler version 24.0
Copyright (c) 1983,2012 Embarcadero Technologies, Inc.
[multiple blank lines]
X lines, X.X seconds, X bytes code, X bytes data. (TaskId:65)
使用 /verbosity:diagnostic 参数如下所示
Embarcadero Delphi for Win32 compiler version 24.0 (TaskId:65)
Copyright (c) 1983,2012 Embarcadero Technologies, Inc. (TaskId:65)
(TaskId:65)
(TaskId:65)
(TaskId:65)
(TaskId:65)
(TaskId:65)
(TaskId:65)
...
X lines, X.X seconds, X bytes code, X bytes data. (TaskId:65)
当直接调用 dcc32 时,也有类似的问题,但使用“-B”编译器开关(-B = 构建所有单元)解决了。 我通过添加 /p:DCC_AdditionalSwitches=-B 尝试了与 MSBuild 类似的方法,但它仍然输出多个空行。
【问题讨论】:
-
从地图文件中读取信息
-
调试映射仅包含文件名,不包含完整路径或相对路径。有没有办法输出路径 id 调试映射?我们的软件需要该路径。
标签: delphi msbuild delphi-xe3 dcc32