0

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

4

3 回答 3

3

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

于 2013-04-23T16:16:19.010 回答
1

您也可以尝试UPX来打包您的 DLL-s。我最近在 Delphi 中制作了一个简单的 DLL,以下是我所做的一些观察:

1) Delphi 7 制作的文件几乎比 Delphi XE3 (32bit, Release 模式) 小 2 倍。拉撒路做了最大的文件。那么也许旧的 FPC 可以制作更小的文件?

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

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

于 2013-05-01T17:59:34.857 回答
1
  1. 为什么?您是否一方面关心二进制大小,另一方面有64 位标签?

  2. 调试信息,通过 -Xs 去除调试信息

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

  4. 避免使用高级功能。不要设置任何 $Mode,系统中与 delphi 兼容的附加功能会使它变大。

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

于 2013-04-27T12:41:07.700 回答