【问题标题】:Why is Delphi Command Line giving me a different output to the IDE?为什么 Delphi 命令行给我一个不同的输出到 IDE?
【发布时间】:2016-03-18 12:48:26
【问题描述】:

自从我搬到西雅图的 Delphi 10 后,我的构建机器出现了问题。尽管在构建机器上使用了 MSBuild 并设置了正确的配置,但构建机器对 IDE 产生了不同的结果。它在我的机器上做同样的事情,所以它与机器上的东西无关。到目前为止,我可以看到的差异是:

  1. 可执行文件大小不同。 39MB 命令行 MSBuild,35MB IDE 构建。
  2. 我在命令行生成的可执行文件中遇到整数溢出错误,而 IDE 中的可执行文件不会发生这种情况。它们显然是两个不同的可执行文件。
  3. 在 IDE 中构建的 COM DLL 为 22mb,而在命令行中构建时约为 59mb。进一步调查表明,它实际上是在 DLL 中添加调试信息,尽管在发布配置中调试信息已关闭。如果我设置“将调试信息放在单独的 TDS 文件中,我会得到相同的 22mb 文件和 36mb TDS 文件。这证明了两件事。正在添加调试信息,并且我的配置正确,因为此更改会产生效果.

rsvars & MSBUILD /target:build /p:config=Release /p:platform=win32 project.dproj

标记为重复的question 并不能真正回答问题,它只是给出了查看内容的提示。

【问题讨论】:

  • 您的 IDE 是否也设置为在 RELEASE、32 位 Windows 中构建?
  • 这也可能派上用场:stackoverflow.com/questions/897357/…
  • 是的,完全相同的配置,我比较了 ide 输出窗口中的 DCC32 和 msbuild 调用的内容
  • 我其实问过这个问题......很久以前! :)
  • 哈哈 我没注意到 :P 也许可以尝试在 Embarcadero 论坛上提问? forums.embarcadero.com/index.jspa

标签: delphi msbuild delphi-10-seattle


【解决方案1】:

问题是 DProj 文件损坏。它是如何被破坏的很难说。但是很明显,配置中设置了几个命令行选项。 DCC32 命令行 MSBuild 吐出时似乎也缺少它们,但我开始怀疑我是否只是想念它们。该项目最初可能至少是 Delphi 6,因此一直在不断升级。为了修复它,我删除了所有 DPROJ、BDSPROJ 和 CFG 文件,只留下 dpr 文件。然后我在 Delphi 10 Seattle 中打开了 dpr 文件,它创建了新的 dproj 文件。我重置了我想要的条件定义、搜索路径以及编译器和链接器选项,中提琴,一切都恢复正常了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多