2010-04-26 24 views
2

我通過this tutorial創建了MobileSubstrate插件。我可以編譯example hook沒有錯誤。試圖編譯MobileSubstrate插件 - 未定義的符號

但只要我添加

#import <SpringBoard/SBAwayController.h> 

ExampleHookProtocol.h

SBAwayController *awayController = [SBAwayController sharedAwayController]; 

ExampleHookLibrary.mm(作爲__$ExampleHook_AppIcon_Launch函數的第一行)試圖make時,我得到了以下錯誤消息(由後者引起的變化):

Undefined symbols: 
    "_OBJC_CLASS_$_SBAwayController", referenced from: 
    [email protected] in ExampleHookLibrary.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
make: *** [ExampleHook.dylib] Error 1. 

SBAwayController的頭文件位於/var/toolchain/sys30/usr/include/SpringBoard中,就像ExampleHook使用的SBApplicationIcon.h一樣。

我正在編譯我的iPod touch 2G。

任何人都可以幫助我嗎?

由於提前,

埃裏克

回答

6

由於沒有任何鏈接在編譯時,你需要在運行時獲得一流的,所以加

Class $SBAwayController = objc_getClass("SBAwayController"); 
在初始化

,並改變

SBAwayController *awayController = [SBAwayController sharedAwayController]; 

SBAwayController *awayController = [$SBAwayController sharedAwayController]; 
+0

我知道,這是一個非常* *老問題,但我有可能使用的'%C'這裏記錄標誌的指令。 – Matoe 2012-08-05 22:24:33

+0

這讓文學界開始對調整鎖匠世界的看法:D – 2012-11-20 01:21:45