创建最小的DLL文件

时间:2013-04-23 16:00:05

标签: windows x86 64-bit lazarus fpc

我创建了一个带有一个汇编程序函数的DLL文件(库)。此文件大小为75kB。如何使这个文件更小?就像我怀疑的那样,有一个自动包含的系统单元。我可以从dll文件中排除此单元吗?

3 个答案:

答案 0 :(得分:3)

我搜索了你的问题,因为我在Visual C ++中想到了调试和发布模式。 因此,您可以尝试使用发布模式创建较小的Dll。我找到了一些设置:http://bugs.freepascal.org/bug_view_advanced_page.php?bug_id=18632
也许这会对你有所帮助,但我不确定它会起作用,因为我没有和Pascal一起工作2年:)

答案 1 :(得分:1)

  1. 为什么?您一方面关注二进制大小,另一方面是否有 64位标记?

  2. 调试信息,传递-Xs去剥离debuginfo

  3. Smartlinking,传递-XX(死码消除)1 + 2组合到-XXs

  4. 避免使用高级功能。不要设置任何$ Mode,与系统的delphi兼容添加将增加它。

  5. 如果您想进一步减少,则必须编辑RTL源并重新编译它。

答案 2 :(得分:1)

您还可以尝试使用UPX打包DLL。我最近在Delphi中创建了一个简单的DLL,这是我做的一些观察:

1)Delphi 7的文件比Delphi XE3(32位,Release模式)小2倍。拉撒路成为最大的档案。那么也许较旧的FPC可以制作较小的文件?

2)我从图书馆剥离了所有非矿山单位。我甚至用我自己的超短版本替换了Math和Windows。这大约减少了两倍的文件大小。

3)系统单元是你不能只删除的东西,但有一些方法可以创建自己的,重新编译和替换。我想Lazarus / FPC也可以这样做。