2012-01-20 83 views
2

我试图在Xcode中创建SDL应用程序,但我在加载图像时遇到了问题。我使用this template,因为I couldn't get it to work从零开始。带Xcode的SDL需要绝对路径

每当我尝试使用SDL_LoadBMP加载映像时,它将返回NULL,除非我给出绝对路径。 (/ Users/Cole/code ...)我查看了导出的.app文件,它确实有我想要加载到Contents/Resources /中的映像,并且我尝试了所有我可以想到的组合那些(../Resources/image.bmp等),但我似乎无法得到它的工作。

有没有人有解决方案?我使用Xcode 4运行Mac OS 10.7,因此我无法使用SDL下载中的模板。

而且,我尝试使用SDL_ttf,但我得到这个错误:

warning: Unable to read symbols for @executable_path/../Frameworks/SDL_ttf.framework/Versions/A/SDL_ttf (file not found). 
warning: Unable to read symbols from "SDL_ttf" (not yet mapped into memory). 

有不正好是它在寻找一个框架文件夹,但不知何故,找到正规SDL框架就好了。

+0

你有没有找到一个解决方案? – bottleboot

+1

@bottleboot是的,请参阅下面的答案。当时我不接受它,因为我不知道如何使它工作,但现在我意识到,这正是我需要的。您需要将他的代码包含在.m或.mm文件中,然后将其传递给C++代码。 – Cole

+0

很酷,非常感谢!所以,即使我想编写跨平台代码,这是要走的路吗? – bottleboot

回答

1

你可以得到的路径,包含文件您的Resources目录与

NSString *path = [[NSBundle mainBundle] resourcePath]; 

或可选择地(在理论上更清洁,因为它可以访问本地化的文件),您可以得到完整的文件名

NSString *file = [[NSBundle mainBundle] pathForResource:@"image.bmp" ofType:nil]; 

你需要的C字符串传递给SDL_LoadBMP,因此无论是两个:

SDL_LoadBMP([[path stringByAppendingString: @"/image.bmp"] UTF8String]); 

SDL_LoadBMP([file UTF8String]); 
0

我有同样的问题,并找到一种方法,而不使用任何目标c。

在你的目标的Xcode点击即可进入到构建阶段部分

然后在最上面一栏点击:编辑 - >添加构建阶段 - >添加复制文件建立

阶段

现在改变的目的地新创建的阶段为“产品目录”,然后根据需要添加任何子路径。

现在您只需将图像添加到下面的列表中,它应该可以工作!

Xcode steps