如何从一个共享库(ELF/GCC)

问题描述:

我建立一个包含公共接口发现如何从一个共享库(ELF/GCC)

共享库由超过100名对象的某些目标文件public.o共享库未使用的引用文件,我想如果.so文件最小化大小。有没有办法从共享库中删除没有被public.o引用的所有符号?或者,是否有办法只保留extern“C”函数的依赖关系,剥离所有未使用的C++名称?

+0

问题在这里回答:http://stackoverflow.com/questions/2088409/stripping-linux-shared-libraries – user48956

您可以在编译时和(库)链接时使用最近的GCC(例如4.6.1版本)并传递-flto

增加了)你也可以玩visibility属性。

但我不会理会的*的大小。所以

+2

剥离未使用的符号将我们的库大小从15Mb减少到300kb。它适用于嵌入式Linux设备 - 这相当节省。 – user48956

看本手册:
http://gcc.gnu.org/wiki/Visibility
它解释例如如何处理C++名称的东西。