AndroidのNDKですが、普通にC/C++ソースをコンパイル、リンクするぐらいならWindowsでも問題無いのですが、オープンソース系を使ってライブラリを作成してからリンク等をする場合、ちょっと環境的に無理があります。
それでも、MacOSなら、それなりにビルドツールが揃っているのでなんとかなるのですが、Windowsとなると難しい側面が多いですよね。
じゃー、Linuxでやれば良いじゃんとなるのですが、Windows使ってる方が何かと効率が良い時もあるんですよね。
ということで、両立させる良い方法はというと、Windowsには、WSLがありますよね。
このWSLにAndroid用ビルド環境を構築しておき、この環境でライブラリをビルド出来るようにすれば便利です。
WSL環境
WSLは、ChatGPTにでも聞いて環境構築して下さいませ。
ChatGPTは、万能ですよ。
まず、WSLにてUbuntu環境を用意します。 他でも良いですが、Debian系が好きなので
それでは、構築です。
wslを起動して作業開始しましょう。VSCodeなんかを使えば楽ですよ。
例)
wsl.exe --install Ubuntu-24.04 --name ubuntu24 --location D:\wsl\ubuntu24 --version 2
1.java環境インストール
2.Android環境インストール
一旦、再ログインしましょうね
3.Android開発環境を整える
4.AndroidStudio側
基本は、AndroidStudio NDK で、openssl と libssh ビルド と同じです。
しかし、scratch.shを実行しても、正しく動作しませんよね。
なので、ラッパーのbatとshを作成します。opensslのサンプルです。
/---openssl-1.1.1n
|--output <- ここにインクルードとライブラリが出来上がります。
|--build.sh
|--wslscrach.bat
|--wslscratch.sh
wslscrach.bat
wsl -d ubuntu ./wslscratch.sh
echo exit
wslscratch.sh
これで、wslscrach.batを実行することで、outputフォルダにscratch.shの結果が出力されます。
wslscratch.shで、カレントフォルダをコピーしてビルドしているんですが、直接ビルドすることも可能です。
しかし、WSLの仕様で、Windows側のファイルを直接操作すると、めちゃくちゃ遅くなります。
なので、一旦、Linux側へソース環境をコピーしてビルドするようにしています。
おまけ
最近のオープンソースで、meson なる物を利用するプロジェクトもあります。
そんな時も恐れず、python3-12 をインストールして環境を整えちゃいましょう。
Ubuntu24.04 LTS だと、デフォでインストールされていますよね。
pip3だけインストールすれば良いでしょ
ついでに、venvも必要ですね
apt install python3-pip
apt install python3.12-venv
python3-12は、distutilsが廃止されたそうで、面倒なことになっています。
でも、setuptoolsをインストールすれば回避可能だそうです。
python3 -m venv andenv
source andenv/bin/activate
pip3 install setuptools
pip3 install meson ninja