gpt4 book ai didi

cocoa - 如何让 NSWorkspace 在我的命令行程序中工作?

转载 作者:行者123 更新时间:2023-12-03 16:27:15 26 4
gpt4 key购买 nike

我在 Google 上未能找到此问题的答案。我正在 Cocoa 中构建一个命令行实用程序,当我尝试创建 NSWorkspace 的实例时我收到编译器错误。这是我在 main.m 中实现的代码,这非常简单:

NSArray *runningApps = [[NSWorkspace sharedWorkspace] runningApplications];
for (NSRunningApplication *app in runningApps) {
if (![app terminate])
[app forceTerminate];
}

当我尝试编译并运行该程序时,我得到的是:

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSWorkspace", referenced from:
objc-class-ref in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我在其他应用程序中使用了相同的代码,没有出现任何问题。我知道NSWorkspace定义于 <Foundation/Foundation.h>我有 <Cocoa/Cocoa.h>导入其中涵盖基础。关于问题可能是什么的任何想法吗?

最佳答案

I know NSWorkspace is defined in <Foundation/Foundation.h>

不,它在 <AppKit/NSWorkspace.h> 中由 <AppKit/AppKit.h> 导入。 <Cocoa/Cocoa.h>包括 <AppKit/AppKit.h><Foundation/Foundation.h> .

您的工具可能仅链接到 Foundation。将其更改为也链接到 AppKit,或者只是链接到所有 Cocoa。在目标的“将二进制文件与库链接”构建阶段,添加“Cocoa.framework”或“AppKit.framework”。

关于cocoa - 如何让 NSWorkspace 在我的命令行程序中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10066973/

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