再びAndroid向けにビルドしてみる
随分昔にAndroid向けにビルドしたことがあったのですが、実装自体もほぼ固まったので再びツールを最新に更新して試しました。手順を追って書きます。前回はLinux上でビルドしましたが、今回はWindows(Cygwin)上で。
1,Qt5.4.1 for Androidをダウンロードします
2,Qt5.4.1 for Androidをインストールします
c:\Tools\develop\Qt\Qt5.4.1_x86_android にインストールしました。
3,PATHを設定します
PATH=/c/Tools/develop/Qt/Qt5.4.1_x86_android/5.4/android_armv7/bin:${PATH}
4,NDKをダウンロードします
http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86.exe
x86_64もありますが、ここではx86を選択します。qmakeがデフォルトでx86向けにMakefileを作るようなので。
5,NDKを展開します。
c:\Tools\develop\android にexeをコピーして展開しました。カレントディレクトリに展開されるようになっています。
6,環境変数ANDROID_NDK_ROOTを設定します
ndkを展開した場所を設定します。
set ANDROID_NDK_ROOT=c:\Tools\develop\andoird\android-ndk-r10d
Cygwin表記でなくDOS表記でなければなりません。私はRapidEnvironmentEditorで個人設定を追加しました。
7,NDKへのPATHを設定します
PATH=/c/Tools/develop/android/android-ndk-r10d:${PATH}
8,qmakeを実行します。
これでAndroid用の実行バイナリのビルドを行うMakefileが出来上がります。ソースコードは一行も変更していません。
前回と異なるのはQtで閉じていないという点です。前回はQtNetworkを使いましたが、今回はWindowsではWinSockを使いますし、Linuxではsocketを使います。Q_OS_WIN、Q_OS_LINUXというマクロで切り分けているので実装不足のエラーとなるだろう思っていました。本当はQ_OS_ANDROIDで記述すべきなのだろうと思っていました。
どんな感じでエラーが出るだろうかと思いビルドしていましたが…なにごともなく終了しました。
libqtbrynhildr.soも出来上がってます。
調べてみたら、Q_OS_ANDROIDに加えてQ_OS_LINUXも定義されているようです。ということでネットワーク周りはそのまま使えるかもしれません。
後はこのNativeコード(libqtbrynhildr.so)のエントリーポイントを呼び出すJava wrapperを作ればよさそうなんですが、なんか手順とか作法とか面倒そうですね…
« Windows XPで動かすには… | トップページ | Windows XPで動かすには…その後 »
コメント