2013-01-15 26 views
3

我正在使用目標C++在xcode中編寫SDL中的第一個遊戲。 該程序在我的電腦上運行良好,但我試圖將該框架包含在應用程序中,以便可以在其他Mac上播放而無需安裝它。Sdl objective C++和xcode在遊戲中包含sdl框架

我已經設置了框架來複制並鏈接到應用程序構建階段中的二進制文件。

我每次運行另一臺Mac我收到此錯誤消息的應用程序:

流程:迷宮[2911]
路徑:/Users/USER/Desktop/Maze.app/Contents/MacOS/迷宮
標識符:LKW.Maze
版本:1(1) 編碼類型:X86-64(母語)
父進程:的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 /版本/ A/SDL
引用自:/用戶/用戶/桌面/ Maze.app /內容/的MacOS /迷宮
原因:圖像沒有發現

二元圖像:
0x10ed3c000 - 0x10ed41fff + LKW.Maze(1 - 1)5364749AEDEB> /用戶/用戶/桌面/迷宮。 app /目錄/ MacOS /迷宮
0x7fff6e93c000 - 0x7fff6e970baf dyld(1 95.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兆赫,0x80CE,0x4D34373142323837334648532D4346382020
存儲器模塊:BANK 1/DIMM0,1 GB ,DDR3,1067兆赫,0x80CE,0x4D34373142323837334648532D4346382020
的AirPort:spairport_wireless_card_type_airport_extreme(0x14E4,0x93),博通BCM43xx 1.0(5.106.198.19.22)
藍牙:版本4.0.8f17,2服務,18個設備,1個輸入的串行端口
網絡服務:AirPort,AirPort,en1
串行ATA設備:Hitachi HTS545025B9SA02,250.06 GB
串行AT A設備:HL-DT-ST DVDRW GS23N
USB設備:內置iSight,apple_vendor_id,0x8507,0x24600000/2
USB設備:BRCM2070集線器,0x0a5c(Broadcom公司),0x4500,0x06600000/3
USB設備:藍牙USB主機控制器,apple_vendor_id,0x8218,0x06630000/5
USB設備:蘋果內置鍵盤/觸控板,apple_vendor_id,0x0236,0x06300000/2

編輯:
的SDL框架是在內容>框架在應用程序包中。
我試過了亞當的工作。
我在框架搜索路徑中包含了@executable_path/contents/framworks
我曾經嘗試都

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

它看起來像是一次運行時崩潰。在一個調試器中運行你的程序,它會告訴你程序崩潰,讓你看到並走過函數調用堆棧,這樣你就知道你是如何在崩潰時結束的,並且還讓你檢查變量以幫助你理解_why_崩潰的原因。 –

+0

可能的重複:http://stackoverflow.com/questions/1621451/bundle-framework-with-application-in-xcode – yiding

回答

1

檢查SDL框架被複制到遊戲的應用程序包。從Finder中選擇應用程序,右鍵單擊並選擇Show Package Contents。如果已正確複製,則SDL框架應位於應用程序包中的「內容」>「框架」中。

如果SDL框架並沒有複製到應用程序包,你可以找到關於如何將SDL框架複製到應用程序包中的以下文章中說明:

Using SDL with Xcode 4

請務必閱讀來自Adam在本文中的評論,因爲如果按照本文中的說明未能將SDL框架複製到應用程序包,他的評論包含解決方法。