定義
Eclipse CDTは、Eclipseプラットフォームに基づくCおよびC ++統合開発環境です。
MinGWは、Microsoft Windows用のネイティブGNUコンパイラコレクション(GCC)ソフトウェアポートであるコンパイラであり、Windows API用の自由に配布されるインポートライブラリとヘッダーファイルのセットです。 MinGWを使用すると、開発者はネイティブのMicrosoft Windowsアプリケーションを作成できます。
SFMLは、C ++で記述された無料のクロスプラットフォームマルチメディアライブラリです。
EclipseとMinGWをインストールする
Eclipseを実行するにはJavaが必要です。
公式WebサイトからEclipse CDTをダウンロードし、
C:\eclipse
などの便利な場所に解凍します。 すべてが正常に機能した場合、
eclipse.exe
を起動します。
次に、 MinGWインストーラーをダウンロードします。 起動します。 説明のあるウィンドウが表示されたら、[
Install
]
Install
クリックし
Install
。 必要に応じて、インストール場所を変更し、[
Continue
]をクリックします。
インストール用にmingw-32-baseおよびmingw-gcc-g ++をマークします。
その後、[インストール]-> [変更の適用]をクリックします。 開いたウィンドウで、[適用]をクリックし、コンポーネントがダウンロードおよびインストールされるまで待ちます。 インストールが完了したら、 msysをダウンロードします。 困難をインストールするときに発生しないと思います。 次に、
bin
MinGWフォルダーへのパスをシステム変数Pathと
bin
msysフォルダーに追加する必要があります。
次のようになりました:
d:\MinGW\bin\;d:\msys\1.0\bin\
SFML MinGWをダウンロードして、どこでも解凍します。
これで準備は終わりました。
C ++プロジェクトの作成とカスタマイズ
Eclipseを実行し、[ファイル]-> [新規]-> [C ++プロジェクト]をクリックします。 Hello Worldプロジェクトを作成し、図のようにMinGWを選択します。
次に、作成したプロジェクトでRMB->プロパティを開き、C / C ++ Build-> Settings-> Tool Setting-> GCC C ++ Compiler-> Includesを開きます。
1. [追加]をクリックします。
2. SFMLを解凍したディレクトリからincludeフォルダを選択します。
その後、プリプロセッサに移動し、SFML_DYNAMICを定義済みシンボルに追加します。
ここで、最初のエラーが発生しました。 MinGW C ++ Linker-> Librariesを使用して、拡張子が.aのライブラリを接続すると、何も機能しません。 これらのライブラリは、MinGW C ++ Linker-> Miscellaneous as Other Objectを介して接続する必要があります。 SFMLライブラリへのパスを指定します
libsfml-graphics.a, libsfml-window.a, libsfml-main.a
を接続する必要があります
プロジェクトの構築
自動生成された.cppのすべてのコードを次のコードで置き換えます。
#include "SFML/Graphics.hpp" int main() { sf::RenderWindow window(sf::VideoMode(640, 480), "Test"); while(window.isOpen()){ sf::Event event; while(window.pollEvent(event)){ if(event.type == sf::Event::Closed){ window.close(); } window.clear(); window.display(); } } return 0; }
ビルドをクリック
すべてが正常にアセンブルされますが、dllがないため機能しません。 SFMLディレクトリのbinフォルダーからプロジェクトのDebugフォルダーにすべてをコピーします。
ここで、プロジェクトのDebugフォルダーにある.exeファイルでRMBをクリックし、[実行]-> [実行構成]を選択し、[C / C ++アプリケーション]をクリックし、[新しい起動構成]をクリックします。
その後、Ctrl + F11またはツールバーの対応するアイコンを使用してプロジェクトを開始できます。
背景が黒のウィンドウが表示され、すべてが機能します。
PS私はずっと前に記事を書いて、それを忘れていました=)何かが時代遅れになる可能性があります。