2012-08-14 26 views
1

我有一個靜態庫,其中的一個對象定義了一個符號:獲取本地符號的引用(即讓外部)

nm mylib.a 
... 
00007340 t _a_local_symbol 
... 

我需要從我的C代碼中訪問該功能。顯然,我沒有該庫的源代碼,所以我只能使用我手頭的歸檔文件。

這受iOS連接器的限制。

更多的上下文。該庫是Objective-C++,有問題的函數是純C語言。我沒有原始頭文件,但我已經恢復了函數簽名。

+0

你可以給這個問題多一些細節和上下文嗎? 庫是純C還是objective-c?你想調用一個沒有暴露在頭文件或其他東西的函數嗎? – Rick 2012-08-14 21:41:25

回答

0

objcopy有一個標誌做你想要什麼:

--globalize-symbol <name> Force symbol <name> to be marked as a global

不知道是否objcopy把適用於iOS的目標文件雖然。

+0

Objcopy是GNU binutils的一部分,它似乎只適用於ELF。這裏更多關於這個問題:http://stackoverflow.com/questions/3475854/an-objcopy-equivalent-for-mac-iphone – Farcaller 2012-08-16 08:57:36

+0

其實,在這一點上,我已經認爲我可以在對象文件一邊做到這一點,因爲連接器似乎沒有直接的解決方案。 – Farcaller 2012-08-16 08:58:46

相關問題