我已經構建了一個靜態庫,以便在我的iPhone應用程序中進行鏈接。這個庫使用了一些全局變量和函數,就像在C.我的問題是,例如使用時:靜態庫中的extern變量,使用Objective-C
extern
void do_stuff (const int a)
{
return a*a;
}
extern const int a_variable;
extern const int an_array[DEFINED_VALUE];
當我使用這個功能,或者訪問這些變量,在我的代碼的任何地方,編譯器告訴我
「_do_stuff」 從引用: - [對象TestMethod的]在tests.o
「_a_variable」 從引用: - 在從參考tests.o
「_an_array」[對象TestMethod的]: - [對象TestMethod的]在tests.o
圖形符號沒有找到 Collect2:身份證返回
有沒有人之前遇到過這個問題1退出狀態
?我知道我在做一些愚蠢的事情,我錯過了一些關鍵的Objective-C或C概念,但是我看不出什麼。所以我希望有人能幫助我。提前致謝。
我嘗試了與目標應用程序鏈接的庫,然後根據庫目標嘗試了目標應用程序。兩者都產生相同的錯誤。至於聲明/定義點,我實際上已經在.mm文件中定義了值和函數體,爲了簡單起見,我只是舉了一個例子。顯然這些變量沒有命名爲a_variable,由於簽署合同,我無法顯示我的任何代碼。 – 2010-06-25 11:28:20
@ Ricardo好的,這有點奇怪。檢查庫('blah.a')是否實際出現在應用目標的「鏈接二進制庫」階段。同時檢查庫實際上是否導出了所需的符號。如果這兩個都是真的,那麼我很難... – walkytalky 2010-06-25 12:11:15
現在你提到它,也許它不是出口我想要的全球符號。但我怎麼能確定呢? – 2010-06-25 14:40:30