Androidネイティブコードのアプリケーション(最新のNDK r5bを使用)でcURLライブラリを使用したいと思います。オンラインで調査した後、cURLを使用する唯一の方法はAndroidは、Android curlを含むソースツリー全体をビルドすることであり、これにより、cURLがAndroidで動作するために必要な構成ファイルが生成されます。ビルドの経験はありません。 Androidソースをゼロから作成し、Androidを再構築せずにcURLライブラリを使用する方法があるかどうか疑問に思っていましたAndroid = from source。理想的には、cURLを静的または共有ライブラリとして使用できるのが理想的です。ここに記載されている手順に従ってみました...
http://curl.haxx.se/mail/lib-2009-12/0071.html
しかし、ファイルcurlrules.hでCURL_SIZEOF_LONG definition is missing!
これらのエラーは、私が言及した構成ファイルがないためと思われますが、上記のリンクの手順ではそれについて言及せず、成功を報告しました。何か案は?
私も同様のクエストをしています!私は現在、cURLを必要とするアプリの開発に取り組んでいますが、今夜の検索であなたの投稿に出くわしました。
http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-Android-os-using.html
あなたが参照したリンクとは異なり、指示に従って成功したと主張する他の人々からのいくつかのフォローアップコメントがあります。あなたが私の前にそれをコンパイルすることに成功し、私にライブラリを送ることを気にしないなら、ここにフォローアップを投稿してください! (スタックオーバーフローはかなり新しいので、pmを実行できるかどうかはわかりません。)これが両方のユーザーに役立つことを願っています。
NDKビルド用にopensslとlibcurlの両方を自動化したプロジェクトがgithubにあるようです。
https://github.com/jahrome/curl-Android
https://github.com/guardianproject/openssl-Android
自分のアプリでそれらを使用するため、iOSとAndroidの両方のバックエンド通信に対処するために単一のライブラリを持つことができます...
これに関するすべての可能な投稿をチェックした後、パス$ {Android-ndk-r10}でLinux x64マシンとCurlバージョン7.37.0を使用して、ようやくコンパイルできました。
たぶん、この手順はあなたを助けることができます:
1º
${Android-ndk-r10}/build/tools/make-standalone-toolchain.sh --platform=Android-15 --Arch=armv7-a --toolchain=arm-linux-androideabi-4.8 --install-dir=./tmp/Android-15
2º
export CC="${Android-ndk-r10}/external/curl/tmp/Android-15/bin/arm-linux-androideabi-gcc"
3º
./configure --Host=arm-linux --enable-cross-compile --enable-threaded-resolver --disable-shared --disable-ftp --disable-file --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp --disable-Gopher --disable-manual --enable-proxy --enable-ipv6 --enable-cookies --enable-symbol-hiding --disable-versioned-symbols --disable-soname-bump --disable-sspi --disable-ntlm-wb --prefix=${Android-ndk-r10}/external/curl/build/curl-7.37.0
4º
make -j4
5º
make install
$ {Android-ndk-r10} /external/curl/build/curl-7.37.0でビルドバージョンを取得します。
コンパイルに64ビットマシンを使用している場合、おそらく2つの定義が不適切であり、このエラーが発生します。
error: size of array '__curl_rule_01__' is negative
ファイル$ {CurlbuildAndroid} /include/curl/curlbuild.hの変数の再定義を解決します(これは危険ですが、機能しました!):
CURL_SIZEOF_LONG 4
CURL_TYPEOF_CURL_OFF_T 4
私はこれをフォローしました link 。そしてそれは私のために働いています。 libcurlをコンパイルするために、リポジトリ全体をダウンロードする必要はありませんでしたAndroidリポジトリ
Android https://play.google.com/store/apps/details?id=io.github.faywong.curl でcURLをダウンロードすることを選択できます。
私は答えられなかったので自動的に削除された同様の質問がありました:(
とにかく、Android=でcurlを正常に使用し、コンパイル済みのバージョンをアップロードして、ユーザーが引き続き検索できるようにしました。
また、typecheck-gcc.hファイルも必要でした。これも修正し、ここにアップロードしました
「CURL_SIZEOF_LONG定義がありません!」
それには方法があります。
arm32プラットフォームの場合は、行番号162のcurlbuild.hを次のように変更します。
//----------------------------------------------add
# define CURL_SIZEOF_LONG 4
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_FORMAT_OFF_T "%lld"
# define CURL_SIZEOF_CURL_OFF_T 8
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
# define CURL_SIZEOF_CURL_SOCKLEN_T 4
//#define __SYMBIAN32__