我正在 Xcode 中创建一个 SDL 项目,我有一个名为 resources 的文件夹,其中存储了我的图像。为了让我的 SDL 应用程序使用 SDL_LoadBMP 访问这些图像,资源文件夹需要与可执行文件位于同一文件夹中。我不想每次要运行应用程序时都必须将我的资源复制并粘贴到“/Users/admin/Library/Developer/Xcode/DerivedData/SDL_app-awvygturnguyeqgwpjowmouadbjf/Build/Products/Debug”文件夹中(我不知道为什么所有随机字符都在文件夹链接中)。我一直在关注 Lazy Foo 的第一个 SDL 教程:http://lazyfoo.net/SDL_tutorials/lesson01/index2.php我正在尝试在屏幕上显示图像。我不需要在这里显示我的代码,因为它与我链接到的教程完全相同,除了不是 SDL_LoadBMP("hello.bmp") 它是 SDL_LoadBMP("resources/images/hello.bmp")。只要我将资源文件夹复制到产品目录中,该应用程序就会运行。我打算显示文件夹的图像等等,但我没有足够的“声誉”。
最佳答案
为了确保文件夹被复制,您需要将该文件夹添加到您的 Xcode 项目,然后在您的构建阶段中创建一个复制步骤。默认情况下,系统识别为资源的项目(.strings 文件、.xib 文件等)有一个复制阶段。但是,对于其他文件,您需要专门创建一个复制阶段。
为此:
- 在 Xcode 中,选择您的项目和 Target,然后选择
Build Phases
选项卡 - 点击
Add Build Phase
按钮并选择Add Copy Files
- 为拷贝选择
Destination
位置(这是层次结构的“顶层”,您还可以使用Subpath
字段指定子目录) - 现在将文件夹或文件从项目导航器拖到新的复制阶段
当您构建可执行文件时,文件将按照您的指示进行复制。
如果您的 SDL 文件在 Xcode 之外被修改,您可能希望将文件夹导入为文件夹引用而不是单个文件。这可能有点棘手,但它会导致 Xcode 复制文件夹的当前内容,而不是只复制您添加到项目中的项目。否则,只需将 SDL 文件直接导入 Xcode 项目并单独管理它们。
关于c++ - Xcode SDL 资源文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587974/