SDL.framework 和 Xcode 玩得并不好



我正在Mac OS X上构建一个使用SDL的游戏。但是,SDL.framework 表现出特殊的行为。

如果/Library/Framework 以及应用程序包中存在 SDL.framework,GDB 会弹出以下内容:

objc[40787]:类 SDLTranslatorResponder 在/Users/Hinchy/Library/Developer/Xcode/DerivedData/Here_Comes_Launchman-abjymmujvjzdemcsrkkcmonahuva/Build/Products/Debug/Here Comes Launchman.app/Contents/MacOS/../Frameworks/SDL.framework/Versions/A/SDL 和/Library/Frameworks/SDL.framework/Versions/A/SDL 中实现。将使用两者之一。哪一个是未定义的。 objc[40787]:类SDL_QuartzWindow在/Users/Hinchy/Library/Developer/Xcode/DerivedData/Here_Comes_Launchman-abjymmujvjzdemcsrkkcmonahuva/Build/Products/Debug/Here Comes Launchman.app/Contents/MacOS/../Frameworks/SDL.framework/Versions/A/SDL 和/library/Frameworks/SDL.framework/Versions/A/SDL 中实现。将使用两者之一。哪一个是未定义的。 objc[40787]:类SDL_QuartzWindowDelegate在/Users/Hinchy/Library/Developer/Xcode/DerivedData/Here_Comes_Launchman-abjymmujvjzdemcsrkkcmonahuva/Build/Products/Debug/Here Comes Launchman.app/Contents/MacOS/../Frameworks/SDL.framework/Versions/A/SDL 和/library/Frameworks/SDL.framework/Versions/A/SDL中实现。将使用两者之一。哪一个是未定义的。 objc[40787]:类SDL_QuartzView在/Users/Hinchy/Library/Developer/Xcode/DerivedData/Here_Comes_Launchman-abjymmujvjzdemcsrkkcmonahuva/Build/Products/Debug/Here Comes Launchman.app/Contents/MacOS/../Frameworks/SDL.framework/Versions/A/SDL 和/library/Frameworks/SDL.framework/Versions/A/SDL中实现。将使用两者之一。哪一个是未定义的。

然后游戏在第一个SDL_PollEvent处以EXC_BAD_ACCESS符号继续崩溃。

如果 SDL.framework 仅存在于应用程序包中(或根本不存在),则游戏将拒绝启动。

如果 SDL.framework 仅存在于/Library/Framework 中,则游戏运行没有问题。

仅适用于 SDL.framework,不适用于我在项目中使用的其他 SDL 衍生产品(SDL_image、SDL_mixer 等)。

看看这篇文章:在 Mac App Bundle 中嵌入框架

更改

运行路径搜索路径"生成设置为"@loader_path/../框架"

正如建议的那样,从我的输出中删除了该消息,并且还允许它在我的/Library/Frameworks文件夹中没有SDL.framework的情况下运行。

相关内容

最新更新