Sdl objective c ++和xcode在游戏中包含sdl框架

时间:2013-01-15 12:29:38

标签: xcode macos sdl objective-c++

我正在使用目标C ++在xcode中用SDL编写我的第一个游戏。 程序在我的计算机上正常运行,但我试图将该框架包含在应用程序中,以便可以在其他mac上播放而无需安装它。

我已将框架设置为复制,然后在应用程序构建阶段链接到二进制文件。

每次我在另一台Mac上运行该应用程序时,都会收到以下错误消息:

  

过程:迷宫[2911]
  路径:/Users/USER/Desktop/Maze.app/Contents/MacOS/Maze
  标识符:LKW.Maze
  版本:1(1)   代码类型:X86-64(原生)
  家长流程:launchd [2811]
  日期/时间:2013-01-14 12:50:54.126 +1100
  操作系统版本:Mac OS X 10.7.5(11G63b)
  报告版本:9
  
  上次报告后的时间间隔:60055秒
  自上次报告以来崩溃:11   自上次报告以来每个应用程序崩溃:6
  匿名UUID:9FDDFA61-468F-4EE5-B922-EE167A9E7DF7
  
  坠落的线程:0
  
  例外类型:EXC_BREAKPOINT(SIGTRAP)
  例外代码:0x0000000000000002,0x0000000000000000
  
  特定应用信息:
  dyld:启动,加载依赖库   
  Dyld错误消息:
    未加载库:@ rpath / SDL.framework / Versions / A / SDL
    参考自:/Users / USA / Desktop / Maze.app / Contents / MacOS / Maze
    原因:未找到图像
  
  二进制图像:
         0x10ed3c000 - 0x10ed41fff + LKW.Maze(1 - 1)5364749AEDEB> /Users/USER/Desktop/Maze.app/Contents/MacOS/Maze
      0x7fff6e93c000-0x7fff6e970baf dyld(195.6-???)< 0CD1B35B-A28F-32DA-B72E-452EAD609613> / usr / lib中/ dyld的
      0x7fff8ba34000-0x7fff8bd4dfff com.apple.Foundation(6.7.2-833.25)< 22AAC369-B63C-3C55-8AC6-C3ECBA44DA7B>
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
      0x7fff94742000-0x7fff94742fff com.apple.Cocoa(6.6-???)< 7EC4D759-B2A6-3A99-AC75-809FED1500C6> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa

     

型号:MacBook7,1,BootROM MB71.0039.B0E,2个处理器,Intel Core 2 Duo,2.4 GHz,2 GB,SMC 1.60f5
  图形:NVIDIA GeForce 320M,NVIDIA GeForce 320M,PCI,256 MB
  内存模块:BANK 0 / DIMM0,1 GB,DDR3,1067 MHz,0x80CE,0x4D34373142323837334648532D4346382020
  内存模块:BANK 1 / DIMM0,1 GB,DDR3,1067 MHz,0x80CE,0x4D34373142323837334648532D4346382020
  AirPort:spairport_wireless_card_type_airport_extreme(0x14E4,0x93),Broadcom BCM43xx 1.0(5.106.198.19.22)
  蓝牙:版本4.0.8f17,2服务,18个设备,1个传入串行端口
  网络服务:AirPort,AirPort,en1
  串行ATA设备:Hitachi HTS545025B9SA02,250.06 GB
  串行ATA设备:HL-DT-ST DVDRW GS23N
  USB设备:内置iSight,apple_vendor_id,0x8507,0x24600000 / 2
  USB设备:BRCM2070集线器,0x0a5c(Broadcom Corp.),0x4500,0x06600000 / 3
  USB设备:蓝牙USB主机控制器,apple_vendor_id,0x8218,0x06630000 / 5
  USB设备:Apple内部键盘/触控板,apple_vendor_id,0x0236,0x06300000 / 2

编辑:
SDL框架在Contents>中。应用包中的框架。
我试过亚当的工作 我在框架搜索路径中包含了@executable_path/contents/framworks 我试过了两个

#include "SDL/SDL.h" 
and 
#include <SDL/SDL.h>

1 个答案:

答案 0 :(得分:1)

检查SDL框架是否已复制到游戏的应用程序包中。从Finder中选择应用程序,右键单击并选择“显示包内容”。 SDL框架应该在Contents&gt;中。应用程序包中的框架(如果已正确复制)。

如果未将SDL框架复制到应用程序包,您可以在以下文章中找到有关如何将SDL框架复制到应用程序包的说明:

Using SDL with Xcode 4

请确保您在文章中阅读了Adam的评论,因为如果按照文章中的说明无法将SDL框架复制到应用包中,他的评论包含一种解决方法。