2011-08-17 93 views
3

我建立一個包含公共接口發現如何從一個共享庫(ELF/GCC)

共享庫由超過100名對象的某些目標文件public.o共享庫未使用的引用文件,我想如果.so文件最小化大小。有沒有辦法從共享庫中刪除沒有被public.o引用的所有符號?或者,是否有辦法只保留extern「C」函數的依賴關係,剝離所有未使用的C++名稱?

+0

問題在這裏回答:http://stackoverflow.com/questions/2088409/stripping-linux-shared-libraries – user48956

回答

1

您可以在編譯時和(庫)鏈接時使用最近的GCC(例如4.6.1版本)並傳遞-flto

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

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

+2

剝離未使用的符號將我們的庫大小從15Mb減少到300kb。它適用於嵌入式Linux設備 - 這相當節省。 – user48956