Using cURL in Android

后端 未结 7 572
终归单人心
终归单人心 2020-11-27 14:58

I would like to use cURL library in my android application in native code (using NDK r5b, the latest). After researching online, it seems the only way to use cURL in android

相关标签:
7条回答
  • 2020-11-27 15:08

    I had a similar question which didn't get answered and thus was automatically removed :(

    Anyway I've successfully used curl on android and have uploaded a compiled version to help the people still searching.

    Download: libcurl_for_arm

    I also required a typecheck-gcc.h file which I've amended and uploaded here too

    Download: typecheck-gcc.h

    0 讨论(0)
  • 2020-11-27 15:09

    After check all possibles post about this, I finally got a good compilation using a Linux x64 machine and Curl version 7.37.0 at path ${android-ndk-r10}.

    Maybe this steps can help you:

    ${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
    

    export CC="${android-ndk-r10}/external/curl/tmp/android-15/bin/arm-linux-androideabi-gcc"
    

    ./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
    

    make -j4
    

    make install
    

    You will get a build version at ${android-ndk-r10}/external/curl/build/curl-7.37.0.

    If you are using a 64bits machine to compile, maybe 2 defines are bad, and you get this error:

    error: size of array '__curl_rule_01__' is negative
    

    I solve redefining the variables in file ${CurlbuildAndroid}/include/curl/curlbuild.h (Its dangerous to do this, but it worked!):

    CURL_SIZEOF_LONG 4
    CURL_TYPEOF_CURL_OFF_T 4
    
    0 讨论(0)
  • 2020-11-27 15:12

    "CURL_SIZEOF_LONG definition is missing!"

    there is a way for it .

    change the curlbuild.h at line number 162 add like this,if you are arm32 platform.

    //----------------------------------------------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__
    
    0 讨论(0)
  • 2020-11-27 15:17

    I followid this link. And it works for me. I did not have to download the whole android repository in order to compile the libcurl

    0 讨论(0)
  • 2020-11-27 15:25

    It seems that there are projects on github that automated both openssl and libcurl for NDK build:

    https://github.com/jahrome/curl-android

    https://github.com/guardianproject/openssl-android

    Going to use those in my own app, so I can have single library to deal with backend communication for both iOS and Android...

    0 讨论(0)
  • 2020-11-27 15:26

    I'm on a similar quest! I'm working on an app right now that requires cURL and just tonight in my search I came across your post here, and what I believe to be the answer:

    http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html

    Unlike the link you referenced, there are several follow-up comments from other people who claim to have success also following the instructions. If you manage to get it compiled before me, and wouldn't mind sending me the library, post a follow up here! (I'm pretty new to stack overflow so I don't know if you can pm.) Hope this works out for both of us!

    0 讨论(0)
提交回复
热议问题