我创建了一个带有一个汇编程序函数的DLL文件(库)。此文件大小为75kB。如何使这个文件更小?就像我怀疑的那样,有一个自动包含的系统单元。我可以从dll文件中排除此单元吗?
答案 0 :(得分:3)
我搜索了你的问题,因为我在Visual C ++中想到了调试和发布模式。
因此,您可以尝试使用发布模式创建较小的Dll。我找到了一些设置:http://bugs.freepascal.org/bug_view_advanced_page.php?bug_id=18632
也许这会对你有所帮助,但我不确定它会起作用,因为我没有和Pascal一起工作2年:)
答案 1 :(得分:1)
为什么?您一方面关注二进制大小,另一方面是否有 64位标记?
调试信息,传递-Xs去剥离debuginfo
Smartlinking,传递-XX(死码消除)1 + 2组合到-XXs
避免使用高级功能。不要设置任何$ Mode,与系统的delphi兼容添加将增加它。
如果您想进一步减少,则必须编辑RTL源并重新编译它。
答案 2 :(得分:1)
您还可以尝试使用UPX打包DLL。我最近在Delphi中创建了一个简单的DLL,这是我做的一些观察:
1)Delphi 7的文件比Delphi XE3(32位,Release模式)小2倍。拉撒路成为最大的档案。那么也许较旧的FPC可以制作较小的文件?
2)我从图书馆剥离了所有非矿山单位。我甚至用我自己的超短版本替换了Math和Windows。这大约减少了两倍的文件大小。
3)系统单元是你不能只删除的东西,但有一些方法可以创建自己的,重新编译和替换。我想Lazarus / FPC也可以这样做。