我在试着让CGEventTap工作。我认为我已经正确地完成了所有的工作,但是当我开始运行时,我得到了这个错误:
Apple Mach-O Linker (id) Error
Undefined symbols for architecture x86_64:
"_tapCallback", referenced from:
-[TestAppDelegate applicationDidFinishLaunching:] in TestAppDelegate.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status发布于 2011-11-10 13:50:13
听起来您已经定义了tapCallback()函数,但实际上并没有实现它。换句话说,您的TestAppDelegate类可能如下所示:
#import "TestAppDelegate.h"
CGEventRef tapCallback(CGEventTapProxy proxy,
CGEventType type,
CGEventRef event,
void *userInfo);
@implementation TestAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
CFMachPortRef eventTapRef = CGEventTapCreate(kCGSessionEventTap,
kCGTailAppendEventTap,
kCGEventTapOptionListenOnly,
kCGEventMaskForAllEvents,
tapCallback,
NULL);
// additional code
}
@end在这个过程中,您需要实际实现tapCallback()函数。如果您实际上已经实现了它,比如在另一个文件中,请确保该文件包含在您的构建目标中。
否则,这样做应该允许程序运行:
CGEventRef tapCallback(CGEventTapProxy proxy,
CGEventType type,
CGEventRef event,
void *userInfo) {
NSLog(@"tapCallback()");
return event;
}https://stackoverflow.com/questions/8074688
复制相似问题