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