大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Android NDK cross-compile 続き

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2019/07/05
最終更新日:2019/07/05
カテゴリー:技術情報
タグ:

津路です。
前回では、armv7aをターゲットに指定して、C++ライブラリをコンパイルする手順を説明しました。
私は、libiconvをコンパイルしてみました。
libiconvのreadmeを読みますと、gettextライブラリと相互依存しているので、以下の手順でコンパイルしたほうがいいよ、と書いてあります。
libiconv -> gettext -> libiconv
実際に、この手順を踏んでみました。
最初のlibiconvコンパイルは正常に終わりました。
次に、gettextですが、configureにて、–with-libiconv-prefix=/home/takahiro/libiconv/localなどと、ライブラリのインストール先を指定しました。
しかし、gettextでは、ソースが大変多くて、かなりの時間がかかります。
ディレクトリの数も多いです。
gnulib-local, gettext-tools(gnulib-tests,tests,src,libgettextpo,gnulib-lib),libtextstyle(gnulib-local,lib,tests,adhoc-tests,examples), gettext-runtime(libasprintf,src,intl,gnulib-lib)

どれが要なのかと探ってみましたが、よくわかりませんでした。
サブディレクトリに分かれているので、更にわかりません。配下に、.libsディレクトリが生成されて、libgettextlib-0.20.1.soなどがそれらであることはわかりますが。。
さて、再度libiconvをビルドするわけですが、configureプログラムで –helpコマンドを発行しても、gettextの個所を指定するコマンドがわかりません。

はて?とここで、あくまでもオプションだからとあきらめました。
で、libiconv単体で行きましょうと、決めました。
次に、libiconvを利用するライブラリをビルドしようと、準備を始めました。
簡単にビルドは通ったのですが、実際に Android Studio のプロジェクトに組み込んで、
CMakeを利用してセットアップし、ビルドしたのですが、
実行すると、libiconv_openが見つからないというエラーに見舞われました。
シンボルは libiconv.soに見つかりますし、ヘッダにも宣言されていて、それを取り込んで、ライブラリの場所を
CMakeに知らせていますが、おかしいです。
次回、これをもう少し詳しく追及します。

    上に戻る