C
C++
SDL2

SDL - Simple DirectMedia Layer の初歩

SDLはOpenGLとDirect3Dを経由して、オーディオ、キーボード、マウス、ジョイスティック、およびグラフィックス・ハードウェアへの低レベルアクセスを提供するために設計されたクロスプラットフォーム開発ライブラリで、
Windows、Mac OS X、Linux、iOS、Androidをサポートしています。
SDLはCで書かれており、C++でネイティブに動作しその他の言語とバインディングが可能です。
ライセンス形態はzlibライセンス。

SDLを使ったアプリケーション開発ができるようになれば、例えばRaspberry Piに小さな液晶パネルを取り付けた機動性の高いアプリケーションを開発することができてモノづくりの幅も広がりそうです。

今回、良いチュートリアルを見つけたのでその紹介です。プログラミングについてはチュートリアルの紹介に留めますので、詳細はチュートリアルを見てください。
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プログラミングのチュートリアルを参考にして動作確認をしました。なかなか親切なチュートリアルだという感じがします。

Eclipse CDTでプロジェクトを作成

新規C++プロジェクトを作成してヘッダーファイルのインクルード設定とライブラリのリンク設定を行います。

インクルード設定

スクリーンショットではGCCのIncludes設定になっていますが、G++のIncludes設定を行ってください

リンク設定

ウィンドウを表示して画像表示

Lesson 02
の説明を読みながらチュートリアルコードを実行したところ。
このようなウィンドウが開くはずです。(画像ファイルだけ差し替えました)

ほんの導入部を紹介しただけですが、この後もチュートリアルを見ながら学習を進めていけば良いと思います。

GCCでコンパイルするとSegmentation faultになります。G++でコンパイルされるようにソースコードはC++のソースコード (拡張子 .cpp)にしてください。

https://github.com/kazz12211