0

私は楽しみのために Xcode 5 で小さな C++ プログラムを書いていますが、Xcode を使用するのは初めてで、プロジェクトに含まれているファイルを開くときに Xcode がパスを処理する方法について混乱しています。私はSDL2_imageフレームワークを使用しています。プロジェクトに含めた画像をロードしたいときは、これを行うだけで画像がうまく見つかります:

IMG_LoadTexture(renderer, "image_name.png");

ただし、これは他の場所では機能しないようです。libxml2 を使用して xml ファイルをロードしようとしていますが、このコードは次のとおりです。

xmlDocPtr doc = xmlParseFile("doc_name.xml");

これだけの結果:

I/O warning : failed to load external entity "doc_name.xml"

ファイルをロードする他の方法を試すと、同様のことが起こります。これが SDL2_Image フレームワークが何か特別なことを行っているためなのか、それとも物事がどのように機能するかについて他の根本的な誤解を持っているためなのかはわかりません。すべてのファイルを同じ方法で含める必要があります。プロジェクトを右クリックして、[ファイルを追加...] を選択しました。コンパイルすると、アプリケーションの「Contents/Resources」フォルダーに表示されます。バンドル内のファイルを開く方法について、stackoverflow で他の質問を見たことがあります (これはコンテンツ フォルダーだと思いますか?)。 SDL_Imageのもので。

これについて何か助けていただければ幸いです。これまでのところ、理解できないインターネットからの魔法のビルド設定ですべての問題を修正したので、次回はどうやってこれを自分で理解できたのかを示す説明があれば大歓迎です.

[更新] パス「Application_Name.app/Contents/Resources/file_name」を使用すると、ファイルにアクセスできます。しかし、SDL2_Image ライブラリ以外のすべてでこれを行う必要がある理由がわかりません。パスをアプリケーションの名前に依存させたくありません。

4

1 に答える 1