UPX 可以打包 Dylib 吗?

is UPX able to pack Dylibs?

UPX可以打包Dylibs吗?它与 Mac Os X 应用程序可执行文件一起工作得很好,但我不能让它打包一个 dylib,它会抛出一个 UnknownExecutableFormatException 异常。尽管如此,我还是可以在 upx 源代码的 mach-o 部分看到很多对 dylib 的引用。有什么提示吗?非常感谢。

如果 dylib 包含 init 或加载命令(例如 LC_ROUTINES),则在旧版本的 UPX 上是可能的。由于尝试打包 dylib 时出现其他不可预见的问题,开发人员后来撤回了这个版本。所以回答你的问题,是的,这是可能的,但只有在某些情况下,推荐。

Changes in 3.05 (27 Apr 2010):
  ...
  * Withdraw support for shared libraries on Darwin (Apple Mac OS X)
    because upx does not understand enough about .dylib.
  ..

Changes in 3.04 (27 Sep 2009):
  ...
  * new formats Dylib/i386 and Dylib/ppc32 support shared libraries
    [such as browser plugins] on Darwin (Apple Macintosh).  An existing
    -init function (LC_ROUTINES command) is required.
  ...