有谁知道为什么当我尝试编译以下代码时出现链接器错误:

extern void * _CTServerConnectionCreate(CFAllocatorRef, int (*)(void *, CFStringRef, CFDictionaryRef, void *), int *);

int callback(void *connection, CFStringRef string, CFDictionaryRef dictionary, void *data)
{
    return 0;
}

%hook UIKeyboard

-(id)hitTest:(CGPoint)test withEvent:(id)event
{
    int x = 0;
    _CTServerConnectionCreate(kCFAllocatorDefault, callback, &x);
    return %orig;
}

%end


使输出为:


  架构armv6的未定义符号:
    “ CTServerConnectionCreate(_CFAllocator const *,int()(void,__CFString const *,__CFDictionary const *,void *),int *)”,引用自:
        Tweak.xm.o中的$ _ungrouped $ UIKeyboard $ hitTest $ withEvent $(UIKeyboard *,objc_selector *,CGPoint,objc_object *)
  ld:找不到架构armv6的符号
  collect2:ld返回1退出状态


一些注意事项:


我用-framework CoreTelephony链接到CoreTelephony
我从这里使用代码Core Telephony Example
我在iOS 4.x和iOS 5.x上都尝试过
我使用nm来确保函数调用在二进制文件内


是的,我正在越狱的设备上。

谢谢 ;)

最佳答案

只需在XCode中包含CoreTelephony.framework。应该管用!

关于objective-c - 链接到CoreTelephony框架(iOS),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7311490/

10-09 16:52