2
我想通過添加函數來擴展Mac OS X上的共享c庫(dylib)。我們稱之爲功能const char *get_string(void)
。這是我的做法:Mac OS X:通過添加函數來擴展共享庫
我創建了一個新的共享庫,其中包含get_string(void)
函數,並且對照我想要擴展的庫喜歡它。可以這麼說,庫包裝器。到現在爲止還挺好。下一步是將應用程序與我的新擴展庫鏈接,但問題是擴展庫只能導出符號_get_string
,而不是原始庫的那些符號。這就是爲什麼鏈接到「擴展」庫(而不是原始庫)會產生大量未解決的符號警告/錯誤。
有沒有辦法導出原始庫的所有符號(有很多),還是有更好的方法來解決問題。基本上我只想擴展現有的庫。順便說一句,我可以訪問原始庫的源代碼,但我不能只重新編譯它。
在此先感謝!
坦克,聽起來不錯,但它並沒有爲我工作。我使用Xcode並將屬性「Other Linker Flags」設置爲「-L/usr/local/lib -reexport-lparent」,其中應擴展libparent.dylib。似乎libtool沒有通過再輸出標誌。父庫甚至沒有鏈接。你有什麼建議嗎? – Benjamin
sub_library標誌被識別,但nm仍然沒有列出父庫的符號 – Benjamin
sub_library標誌完美地工作。 – Benjamin