TOP > プログラミング関連 > SFML非公式翻訳トップ > 【非公式翻訳】SFML2.1チュートリアル > 開発環境を整える > Linux の場合

[原文(公式)]

◆◆ 開発環境を整える ~Linux の場合~ ◆◆
非公式日本語翻訳
Linux で SFML を使うなら、ぜひこのページを読んでね!
SFML をインストールする方法と、SFML を使ったプログラムをコンパイルする方法を紹介するよ!
SFML をインストール
Linux に SFML をインストールするには、いろんな方法があるよ。
選択肢その1が一番かんたんだね。
ディストリビューションの公式のリポジトリに、キミが欲しいバージョンの SFML があるなら、 パッケージマネージャーで取得できるんだ。
たとえば、Debian なら、こんな感じ:
sudo apt-get install libsfml-dev

選択肢その3はちょっと大変。
SFML が依存しているファイルを全てそろえて、CMake をインストールして、 その上で、コマンドをあれこれと手作業で入力しなくちゃいけないのです。
だけど、その分、キミのシステムにぴったりの SFML が手に入るんだ。なにしろキミのシステム上でビルドしたんだからね。 もし、この獣道を進むつもりなら、ソースをコンパイルする方法のチュートリアル があるから、参考にしてね。

選択肢その2は、その3よりはだいぶ楽だよ。
欲しいバージョンの SFML が公式のリポジトリにない場合は、選択肢その2で手を打つのが手っ取り早いかもね。
まずはダウンロードのページ で SFML の SDK をダウンロード。圧縮ファイルを展開して、キミのマシンの好きな場所に配置だ。
マシンのアカウントの個人フォルダでもいいし(/home/[アカウント名]/sfml など)、 標準的なパス( /usr/local など)でもいいね。

もし、古いバージョンの SFML をインストール済みの場合は、 新しいバージョンと衝突しないように気をつけてね!
※ 訳註 ※
公式サイトには Linux用として「GCC - 32 bits」と「GCC - 64 bits」の2つが置かれています。 どちらも ".tar.bz2" 形式の圧縮ファイルです。
これを、ウィンドウズ上で "Lhaplus" などのツールで解凍すると、ファイルが破損するようです。 具体的には "lib" フォルダ内の "*****.so.2" および "*****.so.2.1" というファイルが、空ファイルになってしまいます。

SFML をインストールする Linux環境上で tar コマンドで展開すれば問題ありません
VMWare などで ウィンドウズ環境と平行して作業される方は気をつけてください。

・tar コマンド:

> tar jxvf SFML-2.1-linux-gcc-32bits.tar.bz2

SFML を使ったプログラムをコンパイル
さて、いよいよ SFML を使ったプログラムをコンパイルして SFML のライブラリとリンクする方法だよ。 だけど、IDE についてのお話はしません(Code::Blocks とか Eclipse とか)。 Makefile の書き方や、IDE でのプロジェクトの作り方については、他の先生に教えてもらってね。 だけど、もしキミが Code::Blocks 使いだったら、こっちのチュートリアルが役立つと思うよ。 Windows 向けのお話だけど、Linux でもほとんど同じです。違うのは、Linux の場合は、 SFML を標準的なパスにインストールしているなら、コンパイラとリンカのサーチパスを設定しなくてもいいってところです。

さて! まずはソースファイルを作ろう!
名前は何にしようかな? うーんうーん……よし、"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;
}

ファイルは作れたかな? じゃあ次はコンパイルだ!
g++ -c main.cpp

SFML を標準的じゃないパスにインストールしてる場合は、 コンパイラさんに、SFML のヘッダーファイル(.hpp のファイルさんたち)がどこにいるのか、教えてあげてね。
g++ -c main.cpp -I<sfml-install-path>/include
<sfml-install-path> の部分には、SFML をコピーしたディレクトリのパスを当てはめてね。 たとえば /home/yourAccountName/sfml みたいな感じ。

そしたら次は、出来上がったオブジェクトファイルを SFML のライブラリにリンクしてあげよう。 そうしたら、実行ファイルの出来上がりだよ。
SFML には 5つのモジュールがあるんだ(システム、ウィンドウ、グラフィックス、ネットワーク、オーディオ)。 それぞれのライブラリにリンクするには、コマンドラインの後ろに "-lsfml-xxx" をくっつけてあげてね。 たとえば グラフィックスモジュールなら "-lsfml-graphics" だよ。 対応するライブラリファイルのファイル名と見比べてみてね。 ファイル名冒頭の "lib" と、拡張子 ".so" が省略されてるね。
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

SFML を標準的じゃないパスにインストールしている場合は、 リンカさんに SFML のライブラリさんたち(.so のファイル群)がどこにいるのか教えてあげてね。
g++ main.o -o sfml-app -L<sfml-install-path>/lib -lsfml-graphics -lsfml-window -lsfml-system

よーし! それじゃあ実行してみよう!
./sfml-app

どうかな? うまくいったかな?
うまくいかなかったお友達は、SFML を標準的じゃないパスにインストールしたのかもしれないね。
じゃあ、ライブラリローダーさんに、SFML ライブラリさんたちの場所を教えてあげよう。
export LD_LIBRARY_PATH=<sfml-install-path>/lib && ./sfml-app

うまくいったら、↓こんなウィンドウさんと、こんにちわだよ。