3

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

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

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

进程:Maze [2911]
路径:/Users/USER/Desktop/Maze.app/Contents/MacOS/Maze
标识符:LKW.Maze
版本:1 (1) 代码类型:X86-64 (Native)
父进程:launchd [2811 ]
日期/时间:2013 年 1 月 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/USER/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/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
Memory Module: 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 Hub、0x0a5c (Broadcom Corp.)、0x4500、0x06600000 / 3
USB 设备:蓝牙 USB 主机控制器、apple_vendor_id、0x8218、0x06630000 / 5
设备:Apple 内部键盘/触控板、apple_vendor_id、0x0236、0x06300000 / 2

编辑:
SDL 框架位于应用程序包中的 Contents > Frameworks 中。
我已经尝试过亚当的工作。
我已包含@executable_path/contents/framworks在框架搜索路径中。
我都试过了

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

1 回答 1

1

检查 SDL 框架是否已复制到游戏的应用程序包中。从 Finder 中选择应用程序,右键单击并选择 Show Package Contents。如果正确复制 SDL 框架,则它应该位于应用程序包中的 Contents > Frameworks 中。

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

在 Xcode 4 中使用 SDL

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

于 2013-01-15T20:09:22.903 回答