使用SDL2和Xcode时出现AddInstanceForFactory和HALC_ShellDriverPlugIn错误?

8
我正在尝试使用SDL2和C ++在Xcode 11.2.1上制作简单的游戏; 然而,我的进展被一个错误所阻止。
只需初始化SDL就会遇到这些错误。仅调用此函数即可导致程序崩溃:
SDL_Init(SDL_INIT_EVERYTHING);

给出以下错误:
Westerino[16795:847932] Metal API Validation Enabled
Westerino[16795:848288] flock failed to lock maps file: errno = 35
Westerino[16795:848288] flock failed to lock maps file: errno = 35
Westerino[16795:847932] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x102157f00> F8BB1C28-BAE8-11D6-9C31-00039315CD46
Westerino[16795:847932]  HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine
Westerino[16795:847932]  HALC_ShellDriverPlugIn::Open: Can't get a pointer to the Open routine

我尝试过清除缓存、清理构建、删除偏好设置、重新安装框架等方法,但仍未解决问题。
似乎这些问题可能是在我更新Xcode时开始出现的,但我无法确认。

这个问题是否更适合在游戏开发堆栈溢出上提问? - Adam D
在Google上搜索,看起来F8BB1C28-BAE8-11D6-9C31-00039315CD46 UUID和HALC_ShellDriverPlugIn字符串表明它可能与音频有关; 只初始化SDL_INIT_VIDEO是否会改变任何内容?您使用的是哪个版本的macOS? - genpfault
1
@genpfault 我正在使用Mac OS Catalina 10.15.1。仅使用SDL_INIT_VIDEO仍然导致前三行错误和崩溃。 - Adam D
1
你有没有使用AudioKit呢?我在我的基于AudioKit的项目中看到了相同的[插件]和HALC_消息。 - B.T.
2个回答

1
这里也有同样的问题。我也在使用Catalina 10.15.1和XCode 11.2.1。尽管如此,我成功地在VSCode中使用CodeLLDB构建和调试。此外,关闭"C++: on throw"断点有助于无需暂停运行程序。

1

“Metal API验证已启用”消息是无害的,可以轻松关闭。转到产品/方案/编辑方案,点击诊断选项卡,关闭“Metal API验证”选项。


Metal API验证功能位于选项卡中,而不是诊断选项卡中,至少在我的XCode 11.5中是这样的。 - jsbox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接