gpt4 book ai didi

macos - cgeventtap 的 Apple mach-o 链接器 ID 错误

转载 作者:行者123 更新时间:2023-12-03 17:06:05 25 4
gpt4 key购买 nike

我正在尝试使 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

最佳答案

听起来您已经定义了 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;
}

关于macos - cgeventtap 的 Apple mach-o 链接器 ID 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com