1

バージョン 2 とコードブロックの sfml 入門ガイドに従っており、チュートリアルで指示されたすべてのことを行いました。

  • SDKをダウンロードして解凍しました

  • sfml ヘッダーとライブラリへのパスを追加しました

  • ライブラリのグラフィックス、ウィンドウ、およびシステムをリンクしました

しかし、サンプルコードは機能しません。sfml-graphics-d-2.dll が見つからないというエラー メッセージが表示されます。コンパイルは機能し、ウィンドウは開きますが黒いままで、このエラーがポップアップします。チュートリアルへのリンクは次のとおりです http://www.sfml-dev.org/tutorials/2.0/start-cb.php

私はc ++とコードブロックが初めてなので、詳細な回答をいただければ幸いです。

更新: SFML dll を実行可能ファイルにコピーしました。今、私のプログラムはただクラッシュします。どうしてか分かりません。これは、チュートリアルで使用されているものとまったく同じコードです。

更新: リンクされたライブラリを -s バージョンに変更し、#define SFML_STATIC を追加しました。プログラムは引き続きビルドされ、その後クラッシュします

4

3 に答える 3

2

静的ライブラリをプロジェクト内に構築するように設定しておらず、代わりに SFML との動的リンクを使用しているようです。数か月前に SFML をセットアップしたときに、同様の問題が発生しました。次の引用を思い出してください。

ここに示す設定により、DLL ファイルを必要とする動的バージョンの SFML にアプリケーションがリンクされます。これらの DLL を取り除き、SFML を実行可能ファイルに直接統合したい場合は、静的バージョンにリンクする必要があります。静的 SFML ライブラリには、"-s" サフィックスが付きます。デバッグ用の "sfml-xxx-sd" とリリース用の "sfml-xxx-s" です。この場合、プロジェクトのプリプロセッサ オプションで SFML_STATIC マクロも定義する必要があります。

プロジェクトに静的ファイルが含まれていることを確認してください

sfml-graphics-s-d //for debug
sfml-window-s-d   //d for debug!
sfml-system-s-d

リリースの場合は d を省略 (sfml-graphics-s)

次にCompiler settings -> #Definesに移動して入力します

SFML_STATIC
于 2012-12-27T15:32:29.443 に答える
2

GCC 4.7.1 を含む最新の Code::Blocks バージョンを使用している場合、SFML を自分で再コンパイルする (または私のNightly Buildsを使用する)必要があります。 .

于 2012-12-27T17:12:43.333 に答える
0

Visual Studio 2017 と SFML-2.5.1 に関しては、このチュートリアルをお勧めします。SFMLの設定は、SDL、GLFW、freeGLUT、および GLEW の設定と似ていますが、2 つの特徴があります。.lib ファイルは 29 で、.dll ファイルは 11
です。ダウンロードしたフォルダをコピーして、C: で作成したフォルダに貼り付けます。 2. 空のプロジェクトを作成します。 3. C:...\SFML-2.5.1\include で「追加のインクルード ディレクトリ」を設定します。 4. C:...\SFML-2.5.1\lib で「追加のライブラリ ディレクトリ」を構成します。 5. [追加の依存関係] ウィンドウで、以下をコピーして貼り付けます。



flac.lib; freetype.lib; ogg.lib; openal32.lib; sfml-audio.lib; sfml-audio-d.lib; sfml-audio-s.lib; sfml-audio-sd.lib; sfml-graphics.lib; sfml-graphics-d.lib; sfml-graphics-s.lib; sfml-graphics-sd.lib; sfml-main.lib; sfml-main-d.lib; sfml-network.lib; sfml-network-d.lib; sfml-network-s.lib; sfml-network-sd.lib; sfml-system.lib; sfml-system-d.lib; sfml-system-s.lib; sfml-system-sd.lib; sfml-window.lib; sfml-window-d.lib; sfml-window-s.lib; sfml-window-sd.lib; vorbis.lib; vorbisenc.lib; vorbisfile.lib
6. C: > ... > SFML2.5.1 > bin に移動します。11 個の dll ファイルをすべてコピーし、プロジェクト フォルダーに貼り付けます。

よくできた。よろしく。

于 2019-01-31T14:40:43.070 に答える