[解決済み] Visual Studio上でSFMLを手動で設定する
質問
このQ&Aの投稿は、以下のものです。 たくさん と たくさん の 質問 に関するもの sfml ライブラリで、VSプロジェクトを手動で設定しようとする人がいます。回答が完全でなかったり、具体的すぎたりすることがあります。
SFMLライブラリを静的・動的に使用できるようにするための設定方法を1つの記事にまとめたいと思います。
それで
1. どのようにすればVSプロジェクトに sfml ライブラリ 動的に 一般的な方法で?
2. どのようにすれば、VSプロジェクトを sfml ライブラリ 静的に 一般的な方法で?
どのように解決するのですか?
まずは SFMLチュートリアル Visual Studio でのライブラリの設定について、うまくいかない場合は、この回答を参照してください。
この回答は2つのグループに分けられます。 sfml ダイナミックライブラリとして とその方法 静的ライブラリとして .
共通ステップ
-
VS プロジェクトを作成しましょう(ここでは VS2013 と SFML 2.5.1 を使用しますが、他のバージョンでもほぼ同じです)。として作成します。 コンソールアプリケーション を確認し 空っぽのプロジェクト .
-
ダウンロード sfml ライブラリ できれば最新の安定版で、対応するシステムを選択してください(私の場合は Visual C++ 12 (2013) - 64 ビット ). このファイルをあなたの
.vcxproj
ファイルがあります。これで SFML-X.X.X は、バージョンによって異なります。 -
をダウンロードします。 外部ライブラリ 私の場合は 64ビット のバージョンになります。というフォルダを作成します。 エクストラリブ libraryフォルダの中に、この外部ライブラリを配置します。
-
を作成します。
main.cpp
ファイルから、サンプルコードを貼り付けます。 SFMLチュートリアル .
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
ダイナミックライブラリとしての SFML
-
次のページへ ビルド>コンフィギュレーションマネージャー . 64 ビットのライブラリを使用する場合、まず、新しい Solution Platform を作成します。をクリックします。 アクティブソリューションプラットフォーム->新規作成 を選択します。 x64 からコピーして Win32 の構成になります。私はどちらかというと チェックをはずす 新しいプロジェクト・プラットフォームを作成する .
-
作成 デバッグダイナミック と リリース - ダイナミック コンパイルプロファイルを表示します。アクティブなソリューション・プラットフォームを選択した状態で 構成 (プロジェクトの)と 新規 . を呼び出すことができます。 デバッグダイナミック のチェックを外して、Debug設定からコピーしてください。 新規作成... ). を繰り返し作成します。 リリース - ダイナミック の設定を変更します。
-
開く プロジェクトプロパティ->デバッギング . 選択する デバッグ-ダイナミック の設定を変更し、フィールドを変更します。 環境 をこの値で指定します。
PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH%
. これは、VSを示すことになります。.dll
のライブラリが見つかります。 -
以上 C/C++ セクションを変更し インクルードディレクトリの追加 フィールドにこのパスを追加してください。
$(ProjectDir)\SFML-2.5.1\include
. これは、VSを示すことになります。.hpp
ファイルが配置されています。 -
オン リンカ セクションで 追加ライブラリディレクトリ フィールドにこのパスを追加してください。
$(ProjectDir)\SFML-2.5.1\lib
. これは、VSを示すことになります。.lib
ファイルを見つけることができます。 -
最後に リンカ->入力 を変更します。 依存関係の追加 フィールドに、すべての
.lib
のファイルが必要です。
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib
備考
-d
を示す
デバッグライブラリ
-
で手順3~6を繰り返します。
リリース - ダイナミック
の構成にします。
備考
ステップ6で、ライブラリファイルには
-d
という接尾辞がつきますが、これはリリース・ライブラリであるためです。
静的ライブラリとしての SFML
-
次のページへ ビルド>コンフィギュレーションマネージャー . 作成 デバッグ-静的 と リリース-スタティック コンパイルプロファイルを表示します。アクティブなソリューション・プラットフォームを選択した状態で 構成 (プロジェクトの)と 新規 . を呼び出すことができます。 デバッグ-静的 のチェックを外して、Debug設定からコピーしてください。 新規作成... ). を繰り返し作成します。 リリース-スタティック の設定を変更します。
-
開く プロジェクトプロパティ を選択し デバッグ-静的 の設定を変更します。以上 C/C++ セクションで インクルードディレクトリの追加 フィールドにこのパスを追加してください。
$(ProjectDir)\SFML-2.5.1\include
. これは、VSを示すことになります。.hpp
ファイルが配置されています。 -
オン C/C++ のセクションで、プリプロセッサー*を変更します。 プリプロセッサー定義 フィールドに
SFML_STATIC
という定義があります。これにより、SFML が静的にコンパイルされることをプリプロセッサーに示します。 -
以上 リンカ セクションを変更し 追加ライブラリディレクトリ フィールドにこのパスを追加してください。
$(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib;
. これは、VSを示すことになります。.lib
のファイルを 外部ソース とSFMLから見つけることができます。 -
最後に リンカ->入力 セクションで 依存関係の追加 フィールドに、すべての
.lib
ファイルが必要です。
sfml-audio-s-d.lib
sfml-graphics-s-d.lib
sfml-network-s-d.lib
sfml-system-s-d.lib
sfml-window-s-d.lib
flac.lib
freetype.lib
ogg.lib
openal32.lib
opengl32.lib
vorbis.lib
vorbisenc.lib
vorbisfile.lib
winmm.lib
gdi32.lib
ws2_32.lib
備考
-d
を示す
デバッグライブラリ
注2
-s
を示す
静的ライブラリ
-
で手順2~5を繰り返します。
リリース-スタティック
の構成になります。
備考
ステップ5で、ライブラリファイルには
-d
サフィックスが付きますが、これはリリース・ライブラリであるためです。-s
というサフィックスがつきます。
関連
-
[解決済み] .vsmdiは何のためにあるのですか?また、ソース管理は必要ですか?
-
[解決済み] 「プロジェクトにリファレンスを追加しようとすると、「値が想定範囲に収まらない
-
[解決済み] Visual Studioのデバッグ/ロードが非常に遅い
-
[解決済み] Windows 8でVisual Studioを常にAdministratorとして実行するように強制することはできますか?
-
[解決済み] Visual Studioで、既存のディレクトリツリーをプロジェクトに追加するにはどうすればよいですか?
-
[解決済み] Visual Studio の .suo と .user ファイルをソースコントロールに追加する必要がありますか?
-
[解決済み] Visual Studio CodeとVisual Studioの違いは何ですか?
-
[解決済み] NuGetパッケージの.nupkgファイルをローカルにインストールするにはどうしたらいいですか?
-
[解決済み】Visual Studioでコードを自動フォーマットする方法とは?
-
[解決済み】ソリューションエクスプローラーで、開いているタブからファイルを自動選択する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] LINK : fatal error LNK1104: cannot open file 'D:\...MyProj.exe'.
-
[解決済み] Microsoft Visual Studio 2015 Shell (Minimum) インストール時のフェイタルエラーについて
-
[解決済み] 仮想ディレクトリの作成に失敗し、エラーが発生しました。
-
[解決済み] Visual Studioはタブを4つのスペースに置き換えますか?
-
[解決済み] TFS、SVN、GITの違いは何ですか?[クローズド]
-
[解決済み] デバッグビルドのみVisual Studioのポストビルドイベントを実行する方法
-
[解決済み] Visual Studioのエディタで、空白のスペースにドットが表示されるのはなぜですか?
-
[解決済み】Visual StudioのRebuildとClean + Buildの違いについて
-
[解決済み】ソリューションエクスプローラーで、開いているタブからファイルを自動選択する。
-
[解決済み】Visual Studioはタブを4つのスペースに置き換えますか?