当我尝试编译以下代码时,是否有人知道我为什么会收到链接器错误:
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退出状态
一些注意事项:
是的,我正在使用越狱设备。
谢谢;)
答案 0 :(得分:0)
只需在XCode中包含CoreTelephony.framework即可。应该工作!
答案 1 :(得分:0)
您可能希望声明没有下划线的私有函数。
extern void *CTServerConnectionCreate();
// Call
myRes = CTServerConnectionCreate(args);
编译器会自动添加下划线前缀。