我有一個靜態庫,其中的一個對象定義了一個符號:獲取本地符號的引用(即讓外部)
nm mylib.a
...
00007340 t _a_local_symbol
...
我需要從我的C代碼中訪問該功能。顯然,我沒有該庫的源代碼,所以我只能使用我手頭的歸檔文件。
這受iOS連接器的限制。
更多的上下文。該庫是Objective-C++,有問題的函數是純C語言。我沒有原始頭文件,但我已經恢復了函數簽名。
我有一個靜態庫,其中的一個對象定義了一個符號:獲取本地符號的引用(即讓外部)
nm mylib.a
...
00007340 t _a_local_symbol
...
我需要從我的C代碼中訪問該功能。顯然,我沒有該庫的源代碼,所以我只能使用我手頭的歸檔文件。
這受iOS連接器的限制。
更多的上下文。該庫是Objective-C++,有問題的函數是純C語言。我沒有原始頭文件,但我已經恢復了函數簽名。
objcopy
有一個標誌做你想要什麼:
--globalize-symbol <name> Force symbol <name> to be marked as a global
不知道是否objcopy把適用於iOS的目標文件雖然。
你可以給這個問題多一些細節和上下文嗎? 庫是純C還是objective-c?你想調用一個沒有暴露在頭文件或其他東西的函數嗎? – Rick 2012-08-14 21:41:25