Skip to content

Instantly share code, notes, and snippets.

@kazz12211
Last active September 10, 2017 02:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kazz12211/45883ccf2635aa1089ab8e8638d81c24 to your computer and use it in GitHub Desktop.
Save kazz12211/45883ccf2635aa1089ab8e8638d81c24 to your computer and use it in GitHub Desktop.
SDL - Simple DirectMedia Layer の初歩

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

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

Ubuntuで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 2](http://lazyfoo.net/tutorials/SDL/index.php#Hello SDL)をやってみます。コードと解説はチュートリアルの方を見てください。

コンパイルして実行するとこのようなウィンドウが開くはずです。

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment