【问题标题】:Sdl objective c++ and xcode include sdl framework in gamesdl 目标 c++ 和 xcode 在游戏中包含 sdl 框架
【发布时间】:2013-01-15 12:29:37
【问题描述】:

我正在使用目标 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/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 - ???) /usr/lib/dyld
0x7fff8ba34000 - 0x7fff8bd4dfff com.apple.Foundation (6.7.2 - 833.25)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x7fff94742000 - 0x7fff94742fff com.apple.Cocoa (6.6 - ???) /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 设备:日立 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 > Frameworks 中。
我已经尝试过亚当的解决方法。
我已将 @executable_path/contents/framworks 包含在框架搜索路径中。
我都试过了

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

【问题讨论】:

  • 看起来像是运行时崩溃。在调试器中运行您的程序,它会告诉您在哪里程序崩溃了,让您查看并遍历函数调用堆栈,以便了解您是如何结束崩溃的,还可以让您检查变量以帮助您了解为什么它崩溃了。

标签: xcode macos sdl objective-c++


【解决方案1】:

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

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

Using SDL with Xcode 4

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多