1. ホーム
  2. visual-studio

[解決済み] Visual Studio上でSFMLを手動で設定する

2022-02-19 07:10:05

質問

このQ&Aの投稿は、以下のものです。 たくさん たくさん 質問 に関するもの sfml ライブラリで、VSプロジェクトを手動で設定しようとする人がいます。回答が完全でなかったり、具体的すぎたりすることがあります。

SFMLライブラリを静的・動的に使用できるようにするための設定方法を1つの記事にまとめたいと思います。

それで

1. どのようにすればVSプロジェクトに sfml ライブラリ 動的に 一般的な方法で?

2. どのようにすれば、VSプロジェクトを sfml ライブラリ 静的に 一般的な方法で?

どのように解決するのですか?

まずは SFMLチュートリアル Visual Studio でのライブラリの設定について、うまくいかない場合は、この回答を参照してください。


この回答は2つのグループに分けられます。 sfml ダイナミックライブラリとして とその方法 静的ライブラリとして .

共通ステップ

  1. VS プロジェクトを作成しましょう(ここでは VS2013 と SFML 2.5.1 を使用しますが、他のバージョンでもほぼ同じです)。として作成します。 コンソールアプリケーション を確認し 空っぽのプロジェクト .

  2. ダウンロード sfml ライブラリ できれば最新の安定版で、対応するシステムを選択してください(私の場合は Visual C++ 12 (2013) - 64 ビット ). このファイルをあなたの .vcxproj ファイルがあります。これで SFML-X.X.X は、バージョンによって異なります。

  3. をダウンロードします。 外部ライブラリ 私の場合は 64ビット のバージョンになります。というフォルダを作成します。 エクストラリブ libraryフォルダの中に、この外部ライブラリを配置します。

  4. を作成します。 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

  1. 次のページへ ビルド>コンフィギュレーションマネージャー . 64 ビットのライブラリを使用する場合、まず、新しい Solution Platform を作成します。をクリックします。 アクティブソリューションプラットフォーム->新規作成 を選択します。 x64 からコピーして Win32 の構成になります。私はどちらかというと チェックをはずす 新しいプロジェクト・プラットフォームを作成する .

  2. 作成 デバッグダイナミック リリース - ダイナミック コンパイルプロファイルを表示します。アクティブなソリューション・プラットフォームを選択した状態で 構成 (プロジェクトの)と 新規 . を呼び出すことができます。 デバッグダイナミック のチェックを外して、Debug設定からコピーしてください。 新規作成... ). を繰り返し作成します。 リリース - ダイナミック の設定を変更します。

  3. 開く プロジェクトプロパティ->デバッギング . 選択する デバッグ-ダイナミック の設定を変更し、フィールドを変更します。 環境 をこの値で指定します。 PATH=$(ProjectDir)\SFML-2.5.1\bin;%PATH% . これは、VSを示すことになります。 .dll のライブラリが見つかります。

  4. 以上 C/C++ セクションを変更し インクルードディレクトリの追加 フィールドにこのパスを追加してください。 $(ProjectDir)\SFML-2.5.1\include . これは、VSを示すことになります。 .hpp ファイルが配置されています。

  5. オン リンカ セクションで 追加ライブラリディレクトリ フィールドにこのパスを追加してください。 $(ProjectDir)\SFML-2.5.1\lib . これは、VSを示すことになります。 .lib ファイルを見つけることができます。

  6. 最後に リンカ->入力 を変更します。 依存関係の追加 フィールドに、すべての .lib のファイルが必要です。

    sfml-audio-d.lib
    sfml-graphics-d.lib
    sfml-network-d.lib
    sfml-system-d.lib
    sfml-window-d.lib

備考 -d を示す デバッグライブラリ

  1. で手順3~6を繰り返します。 リリース - ダイナミック の構成にします。 備考 ステップ6で、ライブラリファイルには -d という接尾辞がつきますが、これはリリース・ライブラリであるためです。

静的ライブラリとしての SFML

  1. 次のページへ ビルド>コンフィギュレーションマネージャー . 作成 デバッグ-静的 リリース-スタティック コンパイルプロファイルを表示します。アクティブなソリューション・プラットフォームを選択した状態で 構成 (プロジェクトの)と 新規 . を呼び出すことができます。 デバッグ-静的 のチェックを外して、Debug設定からコピーしてください。 新規作成... ). を繰り返し作成します。 リリース-スタティック の設定を変更します。

  2. 開く プロジェクトプロパティ を選択し デバッグ-静的 の設定を変更します。以上 C/C++ セクションで インクルードディレクトリの追加 フィールドにこのパスを追加してください。 $(ProjectDir)\SFML-2.5.1\include . これは、VSを示すことになります。 .hpp ファイルが配置されています。

  3. オン C/C++ のセクションで、プリプロセッサー*を変更します。 プリプロセッサー定義 フィールドに SFML_STATIC という定義があります。これにより、SFML が静的にコンパイルされることをプリプロセッサーに示します。

  4. 以上 リンカ セクションを変更し 追加ライブラリディレクトリ フィールドにこのパスを追加してください。 $(ProjectDir)\SFML-2.5.1\extlib;$(ProjectDir)\SFML-2.5.1\lib; . これは、VSを示すことになります。 .lib のファイルを 外部ソース とSFMLから見つけることができます。

  5. 最後に リンカ->入力 セクションで 依存関係の追加 フィールドに、すべての .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 を示す 静的ライブラリ

  1. で手順2~5を繰り返します。 リリース-スタティック の構成になります。 備考 ステップ5で、ライブラリファイルには -d サフィックスが付きますが、これはリリース・ライブラリであるためです。 -s というサフィックスがつきます。