我正在使用MSBuild生成构建,并在命令行上构建dproj中的配置。令人不安的是,这样产生的可执行文件的大小与IDE构建产生的大小不同(但不是太多,但仍然!)。任何想法为什么?我会认为使用相同的编译器?为什么Delphi 2009 IDE生成的可执行文件与命令行上生成的可执行文件不同?
9
A
回答
8
要了解IDE是doind,检查
工具|选项|环境选项|编译并运行|显示命令行
而且您可以检查编译器消息。
10
从Delphi命令行编译器构建的主要功能是标准化 - 您明确指定了选项(在命令行中,在.cfg文件等中),并且编译器遵循专门提供的选项。相比之下,IDE有很多其他行为不清晰明确 - 例如,它可能会搜索未在“项目选项”中指定的库路径。我的猜测是IDE构建中发生了一些你并未完全意识到的事情 - 这就是为什么标准化构建是通过命令行完成的。
0
此行为在我用过的每个Delphi版本中都存在。 (5 - 2006)。我不会为此担心。当我第一次发现它时,我花了很多时间来解决这个问题。我错过了一个编译器标志吗? IDE和命令行编译器支持的选项之间是否存在差异?
最后我认为这不是一个大问题。这两个工具都一致地生成了功能相当的可执行文件
0
如果您向命令行编译器提供的命令行参数完全相同,则生成的可执行文件将几乎完全相同。
事实上,IDE只是调用命令行编译器。在IDE中编译项目并查看消息窗口。你会看到完整的dcc32.exe调用...
3
使用命令行建立一致性的第一个答案是正确的,它可能是你不必担心,如果你依靠一个构建系统生产文件始终来自控制台版本。另一方面,如果你确实想弄清楚发生了什么,你应该打开地图文件(在完整的细节层次上)并比较/比较它们。如果两者之间存在差异,他们将出现在那里。任何其他可能存在的差异都可能是由于命令行选项不同(例如可能在IDE设置中设置的条件标志)。
相关问题
- 1. g ++为windows生成可执行文件
- 2. 独立的可执行文件生成
- 3. 如何从命令行生成一个包可执行文件?
- 4. 生成最快的可执行文件
- 5. 生成本机可执行文件
- 6. py2exe无法生成可执行文件
- 7. 使用wix生成可执行文件
- 8. 在buildbot中编译命令生成python可执行文件
- 9. C程序可以在与生成相同的生成文件中执行吗?
- 10. 在运行时生成的可执行文件 - C++ /的Visual C++
- 11. 在VS2012中生成可执行安装文件通过installshield生成可执行文件,但每次都失败
- 12. 什么是MATLAB?它会生成可执行文件吗?
- 13. 我可以在子文件夹中生成文件执行命令
- 14. 从不同格式的目标文件生成一个可执行文件
- 15. 如何在Windows上为Linux生成可执行文件?
- 16. 在Mono下运行由F#3生成的可执行文件
- 17. 如何编写生成文件以在不同的目录中生成目标文件和可执行文件?
- 18. 为什么可执行文件不可执行?
- 19. 无法生成与node.js正确通信的可执行文件
- 20. WPF/Silverlight可以生成独立的可执行文件吗?
- 21. 在LIBGDX中生成可执行文件JAR文件
- 22. 如何从windows erlang .beam文件生成windows可执行文件?
- 23. 从Windows命令提示符执行命令可执行文件
- 24. py2exe可执行文件生成日志文件错误
- 25. 如何生成可在macOS和Linux上运行的可执行文件
- 26. 生成安装程序可执行文件后添加文件
- 27. 使用一个Makefile中生成不同的文件不同的可执行
- 28. 在bash中执行生成的命令
- 29. 可执行文件从cx_Freeze产生的
- 30. 使用NSIS生成zip存档而不是可执行文件
这是如何帮助OP实际上提供,虽然? – 2009-05-22 13:48:09
它有助于确保/可以/控制你的构建工具(史蒂夫在他的问题中提到了MSBuild),就像你从Delphi的IDE那样完全编译*。 – 2009-06-11 16:05:15