OpenSSl 1.0.0a を Android 用にビルドしようとしているのですが、
openssl/obj/local/armeabi/objs/crypto/aes/asm/aes-armv4.o.d.org':
そのようなファイルやディレクトリはありません
( No such file or directory )
openssl/obj/local/armeabi/objs/crypto/aes/asm/aes-armv4.o] エラー 1
が出てしまう。crypto/Android.mk 内の arm_src_files で定義されている
拡張子 '.s' を 'S' にすればOK、と紹介されてるのだが変わらん。
Linux システムでコンパイルしているのに、なぜこんな事に。
Android.mk を弄ったり、1.0.0a でに追加関数の実装をコメント化したり、
非常にめんどい。
と8時間ぐらい色々やっていたのですが…
ndk-build 一発で通るプロジェクトあった。
手動で修正しまくってたのが、すでに反映されていて涙目。ありがたい。
libcrypto.so と libssl.so が生成できます。
Android4(android1.6) 向けにコンパイルするには crypto/dso/dso_dlfcn.c に
定義されている dlfcn_pathbyaddr() の内部実装をコメント化する必要アリ。
dso_dlfcn.c:445 error: 'Dl_info' undeclared (first use in this function)
上記エラーが出てしまうので。
さて一番最初のエラー、
openssl/obj/local/armeabi/objs/crypto/aes/asm/aes-armv4.o] エラー 1
これ11時間かけて、答えにたどりついた。
差分が一切無い状態なのに、コンパイルが通るパターンと通らないパターンがあり、
非常にハマった。今までで初めての現象。
アセンブラリファイルの拡張子が 'S' に統一されておらず 's' が紛れ込んでるのが
原因。gcc では s と S では動作が異なるのが理由です。
Android.mk の話ではなく、実ファイルのことです。
11時間返してくれ。
0 コメント:
コメントを投稿