Android рдХреЗ рд▓рд┐рдП libcURL рдкреЛрд░реНрдЯ рдХреИрд╕реЗ рдХрд░реЗрдВ

рдпрд╣ рд▓реЗрдЦ рдПрдВрдбреНрд░реЙрдЗрдб NDK рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рдЬреЛ рдЕрджреНрднреБрдд libcURL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рд╕реНрдереИрддрд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИред рд▓реЗрдЦрдХ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╣рд░ рдХрд┐рд╕реА рд╕реЗ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛

рдореИрдВ рд╕рд┐рдЧрд╡рд┐рди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЬрд╛рд╡рд╛ рдЖрд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╣рдг рдЗрдВрдбрд┐рдЧреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ 7 рдкрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореВрд▓ рднрд╛рдЧ C ++ рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдХреЗ рд╕рд╛рде рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ 2010 2010 рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдореЗрдВ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкрдВрдк рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ libcURL рд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдХрд╣рд╛рдиреА

рдкрд╣рд▓рд╛ рдЖрд╢реНрдЪрд░реНрдп рддрдм рд╣реБрдЖ рдЬрдм рдореИрдВрдиреЗ рдбреЗрд╡рд▓рдкрд░ рдХреА рд╕рд╛рдЗрдЯ рд╕реЗ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛: curl.haxx.se/download.htm ред рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рддрд╣рдд, рдХреЗрд╡рд▓ рдЗрдХрдЯреНрдареЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ - "рдХрд┐рд╕реА рддрд░рд╣ рдореИрдВ рдЦреБрдж рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ", рдореИрдВрдиреЗ рд░реЙрд▓реНрд╕ (рдХрд░реНрд▓-7.27.0) рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ред

рд╢рд╛рдо рдХреЛ рджреЗрд░ рдирд╣реАрдВ рд╣реБрдИ рдФрд░ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред рдореИрдВрдиреЗ рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Android.mk рдлрд╝рд╛рдЗрд▓ рдХреЛ рддреЗрдЬреА рд╕реЗ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреЗ Android.mk рдореЗрдВ рд╕рдм рдХреБрдЫ рдорд┐рд▓рд╛рдпрд╛ред рд╕рд╛рдЗрдмрд░рд╡рд┐рди рдореЗрдВ рдмрд╣реБрдд рдЕрдкреНрд░рд┐рдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ - "CURL_SIZEOF_LONG рдкрд░рд┐рднрд╛рд╖рд╛ рдЧрд╛рдпрдм рд╣реИ!", рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдпрд╣ рд╕рд╣рд╛рдпрдХ рд╣реИ: stackoverflow.com/questions/4952169/use-curl-in-android ред рдореИрдВрдиреЗ рд╕рд▓рд╛рд╣ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд▓рд╛рдкрддрд╛ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдмрдиреА рд░рд╣реАрдВред рдирддреАрдЬрддрди, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╡рдХреВрдлреА рд╣реИ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдпрд╛ рдЬреИрд╕реЗ: thesoftwarerogue.blogspot.ru/2010/05/porting-of-libcurl-to-android-os-n.html ред рдЖрдзреА рд░рд╛рдд рдХреЗ рдмрд╛рдж рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдареАрдХ рдерд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреИрд░-рд╕рдХрд╛рд░рд╛рддреНрдордХ рдиреЛрдЯ рдкрд░ рдЧреЛрд▓ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рд╕реБрдмрд╣, рдПрдХ рддрд╛рдЬрд╝рд╛ рджрд┐рдорд╛рдЧ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЕрд╕реЗрдВрдмрд▓реА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реНрд╡рдпрдВ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Android рдХреЗ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рддрд╣рдд curl_config.h рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рдЖрдЧреЗ рдкрдврд╝рдирд╛ рдХреЗрд╡рд▓ рд╡реНрдпрд░реНрде рдерд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдЗрд╕ рдореИрдЬрд┐рдХ рд╣реИрдбрд░ рдХреЗ рд▓рд┐рдП рдорд┐рд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдиреЗ рд╕рд╛рдЗрдмрд░рд╡рд┐рди рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред рдЕрдкрдиреЗ рд▓рд┐рдП рджреГрдврд╝ рдирд┐рд╢реНрдЪрдп рдХрд░рдХреЗ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдЧ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╣реИ, рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд╕рд┐рд░реНрдл рдХреЛрдбрд╛рдВрддрд░рдг рдХреЗ рдкрд░рд┐рддреНрдпрдХреНрдд рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдПрдХ рджрд┐рди рдкрд╣рд▓реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдореБрдЭреЗ рдПрдХ рд▓реЗрдЦ рдорд┐рд▓рд╛ рдЬрд╣рд╛рдБ рдПрдХ рдорд┐рддреНрд░ рдиреЗ рдмрд╣реБрдд рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ рдХрд╣рд╛ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... blog.glowinteractive.com/2011/11/porting-curl-to-android-as-static-library рдХрд╛ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдгред рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЗрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ config-mac.h рд▓рд┐рдпрд╛, рдЙрд╕рд╕реЗ config-android.h рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ setup.h рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ред рдФрд░ рд▓реЛ рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛ - config-android.h рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдХрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ (рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкрдВрдк рдХрд░рдиреЗ) рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ред

рд╕рдВрд╢реЛрдзрди рдХреЗ рдирд┐рд░реНрджреЗрд╢:

рд╢рд╛рдорд┐рд▓ / рдХрд░реНрд▓ / curlbuild.h рдореЗрдВ

рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ
#elif defined(__GNUC__) 
рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ
 # else # 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 
рдХреНрдпрд╛ рдореИрдВ рдЙрд╕реЗ рдлреЛрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ
  #elif defined(ANDROID) 
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
 elif defined(__x86_64__) || defined(__ppc64__)... 

in lib / setup.h

рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ
 #ifdef __VXWORKS__ # include "config-vxworks.h" #endif 
рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗрдВ
 #ifdef __GNUC__ # include "config-android.h" #endif 

Lib / config-mac.h рд╕реЗ lib / config-android.h рдмрдирд╛рдПрдБ

in lib / config-android.h

рдкрд░рд┐рд╡рд░реНрддрди
 #define OS "mac" 
рдкрд░
 #define OS "android" 

рдкрд░рд┐рд╡рд░реНрддрди
 #define HAVE_IOCTL_FIONBIO 1 
рдкрд░
 #define HAVE_FCNTL_O_NONBLOCK 1 

рдкрд░рд┐рд╡рд░реНрддрди
 #define SEND_TYPE_ARG3 size_T 
рдкрд░
 #define SEND_TYPE_ARG3 size_t 

рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
 #define HAVE_EXTRA_STRICMP_H 1 #define HAVE_EXTRA_STRDUP_H 1 


рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╕рдореВрдЪреЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЖрдпрд╛ред Googleforum/?fromgroups=#! рд╡рд┐рд╖рдп / Android-ndk / JmJYxZ7s8G8ред рдпрд╣рд╛рдБ рднреА рдРрд╕рд╛ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд╕реЛрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

Source: https://habr.com/ru/post/In158743/


All Articles