C++」カテゴリーアーカイブ

プログラミング言語「C++」に関するカテゴリーです。

SDLでAndroidアプリを作成

SDL(Simple DirectMedia Layer)を使ってAndroidアプリを作成する手順の覚え書き

※事前にAndroid SDK、Android NDKとSDLはインストールしておきます。

1. android-projectを適当なディレクトリにコピー

$ cp -r /path/SDL/android-projec project

2. project/jniディレクトリにSDLへのシンボリックリンクを作成

$ cd project/jni
$ ln -s /path/SDL

3. ソースコードの準備

project/jni/srcにソースコードを作成し、Android.mkLOCAL_SRC_FILESでファイル名を設定します。

$ cd src
$ vi example.cpp
$ vi Android.mk
$ cd ../..

4. ビルドの準備

local.propertiessdk.dirを指定します。

$ vi local.properties
$ cat local.properties
sdk.dir=/path/Sdk

必要に応じて、AndroidManifest.xmlでSDKのversion指定や、jni/Application.mkAPP_PLATFORMを追加したりします。

$ vi AndroidManifest.xml
$ vi jni/Application.mk

5. ndk-buildでビルド

$ ndk-build

6. デバッグ

$ ant debug
$ ant debug install

ログの出力

$ adb logcat

ログのクリア

$ adb logcat -c

以上です。

もう少し簡単にビルドしたい場合はbuild-scripts/androidbuild.shを実行するだけでもアプリを作成できます。

$ ./androidbuild.sh com.yourcompany.yourapp example.cpp

リンク

Simple DirectMedia Layer – Homepage
http://www.libsdl.org/

Mercurial repositories index
https://hg.libsdl.org/

Download Android Studio and SDK Tools | Android Developers
http://developer.android.com/sdk/index.html

Android NDK | Android Developers
http://developer.android.com/tools/sdk/ndk/index.html

coreのダンプとgdbでのデバッグ

coreをダンプするように設定して、デバッグする手順

1. プログラムのコンパイル

$ g++ -O0 -g example.cpp

最適化無効、デバッグ情報付加でビルド

2. coreをダンプするように設定

$ ulimit -c unlimited

最近の環境ではデフォルトでcoreを出力しない設定になっていることが多いです。

3. ビルドしたプログラムの実行

$ ./a.out
$ ls
a.out core example.cpp

4. デバッグ

$ gdb a.out core