各位大侠,我要在android中通过jni使用libcurl,实现网络交互,不过我编译libcurl时总是出问题。有编译过的大侠请指点指点小弟。小弟感激不进。
我用的环境:
adroid sdk 1.5 ,ndk 1.6 ,curl-7.21.4,在windows环境下使用cygwin编译、或ubuntu10上编译。我编译时会报下面的错误:awk: build/core/extract-platform.awk:30: fatal: cannot open file `-' for reading
 (Is a directory)
Android NDK: Building for application 'hello-libcurl'
Compile thumb  : curl <= apps/hello-libcurl/project/jni/curl/lib/file.c
In file included from apps/hello-libcurl/project/jni/curl/lib/setup.h:126,
                 from apps/hello-libcurl/project/jni/curl/lib/file.c:23:
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:79:4: error: #error
 "CURL_SIZEOF_LONG definition is missing!"
In file included from apps/hello-libcurl/project/jni/curl/lib/setup.h:126,
                 from apps/hello-libcurl/project/jni/curl/lib/file.c:23:
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:80: error: expected
 '=', ',', ';', 'asm' or '__attribute__' before 'Compilation_aborted_CURL_SIZEOF
_LONG_is_missing'
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:94:4: error: #error
 "CURL_TYPEOF_CURL_OFF_T definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:99:4: error: #error
 "CURL_FORMAT_CURL_OFF_T definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:104:4: error: #erro
r "CURL_FORMAT_CURL_OFF_TU definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:109:4: error: #erro
r "CURL_FORMAT_OFF_T definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:114:4: error: #erro
r "CURL_SIZEOF_CURL_OFF_T definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:119:4: error: #erro
r "CURL_SUFFIX_CURL_OFF_T definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:124:4: error: #erro
r "CURL_SUFFIX_CURL_OFF_TU definition is missing!"
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:153: error: 'curl_o
ff_t' undeclared here (not in a function)
apps/hello-libcurl/project/jni/curl/include/curl/curlrules.h:153: error: 'CURL_S
IZEOF_CURL_OFF_T' undeclared here (not in a function)
In file included from apps/hello-libcurl/project/jni/curl/lib/setup_once.h:66,
                 from apps/hello-libcurl/project/jni/curl/lib/setup.h:583,
                 from apps/hello-libcurl/project/jni/curl/lib/file.c:23:
build/platforms/android-3/arch-arm/usr/include/time.h:92: warning: function decl
aration isn't a prototype
In file included from apps/hello-libcurl/project/jni/curl/lib/file.c:48:
build/platforms/android-3/arch-arm/usr/include/unistd.h: In function 'getpagesiz
e':
build/platforms/android-3/arch-arm/usr/include/unistd.h:170: warning: nested ext
ern declaration of '__page_size'

解决方案 »

  1.   

    信息里不是提示了有宏定义没找到么,肯定是少include的问题。
      

  2.   

    提示了有宏定义没找到么,肯定是少include的问题
      

  3.   

    提示了有宏定义没找到么,肯定是少include的问题
      

  4.   

    有没有用过的?水边那个版本的curl都好,谢谢了。那里面的文件我都引用类,好像是还要自己生成一个头文件,不知道为什么我生成的cur_config.h,用了还是会报错。各种宏没定义,还会有很多的警告。
      

  5.   

    http://blog.csdn.net/liushilei/archive/2010/04/15/5488107.aspx
    经过努力,发现这个连接的方法,是可以编译生成libcurl.a文件的。
    我的方法是将解压的curl源码放到ndk根目录。在cygwin中切换到(ndk目录)/curl。然后运行./configure命令生成curl_config.h,然后将android.mk中节点
    LOCAL_CFLAGS += \  
     $(common_CFLAGS) \  
     -I$(LOCAL_PATH)/include \  
     -I/usr/include  
    补充缺少内容。然后编译,有好多警告,不过最后还是成功了。