SDLはOpenGLとDirect3Dを経由して、オーディオ、キーボード、マウス、ジョイスティック、およびグラフィックス・ハードウェアへの低レベルアクセスを提供するために設計されたクロスプラットフォーム開発ライブラリで、
Windows、Mac OS X、Linux、iOS、Androidをサポートしています。
SDLはCで書かれており、C++でネイティブに動作しその他の言語とバインディングが可能です。
ライセンス形態はzlibライセンス。
SDLを使ったアプリケーション開発ができるようになれば、例えばRaspberry Piに小さな液晶パネルを取り付けた機動性の高いアプリケーションを開発することができてモノづくりの幅も広がりそうです。
今回、[良いチュートリアル](http://lazyfoo.net/tutorials/SDL/index.php#Hello SDL)を見つけたのでその紹介です。プログラミングについてはチュートリアルの紹介に留めますので、詳細はチュートリアルを見てください。
Ubuntu 16.0.4LTSを対象に書きます。
SDLのインストール
SDL 2.0のソースコードのリポジトリはmercurialで管理されています。ソースコードをクローンするにはmercurialがインストールされている必要がありますので、もしインストールされていなければ次のコマンドでmercurialをインストールします。
$ sudo apt-get install mercurial
ソースコードのダウンロード
カレントディレクトリにリポジトリからソースコードをSDLという名前でクローンします。
$ hg clone https://hg.libsdl.org/SDL SDL
SDLのコンパイルとインストール
$ cd SDL
$ mkdir build
$ cd build
$ ../configure
$ make
$ sudo make install
入門プログラムの作成
Eclipse CDTを使って簡単なプログラムを書いてみます。
SDLプログラミングの[チュートリアル](http://lazyfoo.net/tutorials/SDL/index.php#Hello SDL)を参考にして動作確認をしました。なかなか親切なチュートリアルだという感じがします。
Eclipse CDTでプロジェクトを作成
新規C++プロジェクトを作成してヘッダーファイルのインクルード設定とライブラリのリンク設定を行います。
インクルード設定
スクリーンショットではGCCのIncludes設定になっていますが、G++のIncludes設定を行ってください
リンク設定
ウィンドウを表示して画像表示
Lesson 02
の説明を読みながらチュートリアルコードを実行したところ。
このようなウィンドウが開くはずです。(画像ファイルだけ差し替えました)
ほんの導入部を紹介しただけですが、この後もチュートリアルを見ながら学習を進めていけば良いと思います。
GCCでコンパイルするとSegmentation faultになります。G++でコンパイルされるようにソースコードはC++のソースコード (拡張子 .cpp)にしてください。