3

目的の C++ を使用して、xcode の SDL で最初のゲームを作成しています。プログラムは私のコンピューターで正常に動作しますが、フレームワークをアプリケーションに含めようとしているので、インストールしなくても他の Mac で再生できます。

アプリケーションのビルド段階で、フレームワークをコピーしてバイナリにリンクするように設定しました。

別の Mac でアプリケーションを実行するたびに、次のエラー メッセージが表示されます。

プロセス: Maze [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
OS バージョン: Mac OS X 10.7.5 (11G63b)
レポート バージョン: 9

前回のレポート以降の間隔: 60055 秒
前回のレポート以降のクラッシュ: 11
アプリごとのクラッシュ前回のレポート以降: 6
匿名 UUID: 9FDDFA61-468F-4EE5-B922-EE167A9E7DF7クラッシュした

スレッド: 0

例外の種類: EXC_BREAKPOINT (SIGTRAP)
例外コード: 0x0000000000000002、0x000000000000000

アプリケーション固有の情報:
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>
/システム/フレーム/ライブラリ/workFrames/Foundation .framework/Versions/C/Foundation
0x7fff94742000 - 0x7fff94742fff com.apple.Cocoa (6.6 - ???) <7EC4D759-B2A6-3A99-AC75-809FED1500C6> /システム/ライブラリ/フレームワーク/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 )
Bluetooth: バージョン 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 デバイス: Bluetooth USB Host Controller, 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>
4

1 に答える 1

1

SDL フレームワークがゲームのアプリケーション バンドルにコピーされたことを確認します。Finder からアプリケーションを選択し、右クリックして [パッケージの内容を表示] を選択します。SDL フレームワークは、適切にコピーされていれば、アプリ バンドルの Contents > Frameworks にあるはずです。

SDL フレームワークがアプリ バンドルにコピーされていない場合、SDL フレームワークをアプリ バンドルにコピーする方法については、次の記事を参照してください。

Xcode 4 で SDL を使用する

記事の指示に従って SDL フレームワークをアプリ バンドルにコピーできない場合の回避策が彼のコメントに含まれているため、記事の Adam からのコメントを必ずお読みください。

于 2013-01-15T20:09:22.903 に答える