2013-10-18 40 views
0

我有兩個庫:libmy1.so和libmy2.so。 libmy1.so很小,需要libmy2.so的支持,它的體積非常大。但是,libmy1.so只需要libmy2.so中的幾個函數。有沒有什麼辦法可以用來將函數鏈接到libmy1.so中,這樣libmy1.so可以在沒有libmy2.so的情況下使用?如何梳理兩個.so庫

回答

1

如果您創建了my2的靜態版本,則可以將它們鏈接起來,而libmy1.so將包含libmy2.a所需的內容,而不需要同時包含這兩個庫。

看看這個網頁,一些指針:Examples of .so and .a libraries

0

您也可以使用的dlopen/dlsym進行用於需要libmy2.so的功能。

不幸的是,在啓動時無法檢查libmy2.so的存在。所以當需要libmy2.so的函數在第一次被調用時,libmy1.so必須加載libmy2.so。

如果libmy2.so不存在或無法加載,您將不得不做出一些錯誤反應。