2009-05-22 43 views

回答

8

要了解IDE是doind,检查

工具|选项|环境选项|编译并运行|显示命令行

而且您可以检查编译器消息。

10

从Delphi命令行编译器构建的主要功能是标准化 - 您明确指定了选项(在命令行中,在.cfg文件等中),并且编译器遵循专门提供的选项。相比之下,IDE有很多其他行为不清晰明确 - 例如,它可能会搜索未在“项目选项”中指定的库路径。我的猜测是IDE构建中发生了一些你并未完全意识到的事情 - 这就是为什么标准化构建是通过命令行完成的。

0

此行为在我用过的每个Delphi版本中都存在。 (5 - 2006)。我不会为此担心。当我第一次发现它时,我花了很多时间来解决这个问题。我错过了一个编译器标志吗? IDE和命令行编译器支持的选项之间是否存在差异?

最后我认为这不是一个大问题。这两个工具都一致地生成了功能相当的可执行文件

0

如果您向命令行编译器提供的命令行参数完全相同,则生成的可执行文件将几乎完全相同。

事实上,IDE只是调用命令行编译器。在IDE中编译项目并查看消息窗口。你会看到完整的dcc32.exe调用...

+1

这是如何帮助OP实际上提供,虽然? – 2009-05-22 13:48:09

+0

它有助于确保/可以/控制你的构建工具(史蒂夫在他的问题中提到了MSBuild),就像你从Delphi的IDE那样完全编译*。 – 2009-06-11 16:05:15

3

使用命令行建立一致性的第一个答案是正确的,它可能是你不必担心,如果你依靠一个构建系统生产文件始终来自控制台版本。另一方面,如果你确实想弄清楚发生了什么,你应该打开地图文件(在完整的细节层次上)并比较/比较它们。如果两者之间存在差异,他们将出现在那里。任何其他可能存在的差异都可能是由于命令行选项不同(例如可能在IDE设置中设置的条件标志)。

相关问题