我会很快暴露我的问题。我正在尝试在 Android 上移植 curl 并在我的应用程序中使用它。我用 ARM 工具链构建了 curl 库,配置并制作了(几次以确保我第一次没有做错任何事情)。
然后我继续将新创建的 libcurl.a 和 curljni.c 放入我的 jni 文件夹中,只要以下 Android.mk :
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= libcurl
LOCAL_SRC_FILES := libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include/curl
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := curljni
LOCAL_SRC_FILES := curljni.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/curl
LOCAL_STATIC_LIBRARIES := libcurl
include $(BUILD_SHARED_LIBRARY)
我一直在尝试很多东西,我很确定它现在看起来不错,但是每当我尝试使用 ndk-build 工具进行构建时,我都会获得以下信息:
注意:curljni.c 调用 libcurl 库及其 easy.h 和 curl.h 文件中的函数。然后将它们包含在文件的顶部。
我还尝试使用 LOCAL_WHOLE_STATIC_LIBRARIES 而不是 LOCAL_STATIC_LIBRARIES 要求将整个库加载到我的 Android 应用程序中,但没有取得更多成功:
之前 :
- 下载 curl.7.28.0
- 为 ARM 4.6 制作了一个独立的工具链
- 修复了 curl 中的几个文件,其换行符类似于 DOS 并且需要类似于 Unix(配置中的错误) - 其中一个是 depcomp,链接到 libcurl_la-file.lo
- ./configure --host=arm-linux-androidaebi --with-zlib --enable-ipv6
- 制作/制作安装
- 从 curl\lib.libs 添加生成的 libcurl.a