对于头部搜索路径,应该设置为FRAMEWORK_DIRCTORY/SDL2.framework/Headers/
,或者你可以使用FRAMEWORK_DIRCTORY/SDL2.framework
并打开recursive
搜索。
然后你应该能够使用它#include <SDL.h>
。
编辑:
经过一番调查,似乎我原来的答案更像是一种解决方法。在代码中包含 SDL 库的正确方法应该是使用 just #include <SDL2/SDL.h>
,但它不起作用。
原因是在编译代码时,Xcode 会尝试将库复制到产品文件夹,以便编译后的可执行文件可以轻松访问它。然而,由于某种原因,Xcode 复制了没有头文件夹的框架(原因可能是 Xcode 正在转向只使用 Swift,它实际上并没有“头”的东西)。
默认情况下,当您尝试运行代码时,它会看到SDL2.framework
产品文件夹中有一个文件夹,它会使用该框架,即使它没有位于其中的头文件夹。但由于它实际上并没有标题文件夹,它实际上并没有运行。
要解决它,最简单的方法是将其从Targets/Build Phases/Embed Frameworks
.
默认情况下,当您向项目添加框架时,它也会被添加到此处。通过从 中删除它Embed Frameworks
,它不会将框架复制到产品文件夹。它只会尝试从您放入的任何内容中搜索 SDL 框架Build Settings/Framework Search Path
。
同时,您不需要任何东西Build Settings/Header Search Path
,因为它会Headers
首先在您的框架中查找文件夹。
有了你的代码,你就可以使用#include <SDL2/SDL.h>
.
更好的是,您可以将框架添加到Build Phases/Copy Files
,并将 设置Destination
为Frameworks
,清空Subpath
,并可能取消选中Copy only when installing
,以获得更好的跨设备可用性。