2012-01-07 129 views
0

我从我想在自己的应用程序中使用的第三方(LibXL)获得了一个库。我收到了一个已经编译好的dylib文件和头文件。在MacOS上缩小已编译的dylib的大小

问题是这个库是37MB大!这是一个包含PPC(32位)和Intel(32位+ 64位)代码的胖库。我通过使用lipo去除PPC部分,从而将文件大小减小到25MB,但这仍然很大!我的应用程序只有5MB左右的大小,并且包含一个只有我的应用程序的一小部分所需的25MB库似乎很荒谬。

有没有人有一个想法如何减少编译库的大小?是否有可能以某种方式静态链接一个dylib文件,以便我可以去掉未使用的符号?

是由于调试符号或类似dylib内的大文件的大小?有没有不必要的东西可以在dylibs里面剥离?

回答

1
+0

这削减了约1MB的关闭。所谓'strip:无法被剥离的重定位条目所引用的符号'(+长符号列表)仍然留下24MB :( – 2012-01-07 18:20:35

+0

)如果您可以从原始开发者那里获得源代码和Xcode项目,那么可以缩小它更多,但只有一个二进制文件,你可能不会变小,而且静态链接的配置可能会大大减小,因为你会死去。 – StilesCrisis 2012-01-07 21:53:07

+0

我问公司,他们非常有帮助,为我提供了一个静态库,所以解决了这个特定库的问题。但是,我仍然有一些其他来源的dylib,我也想制作更小的... – 2012-01-07 22:12:44