
[英]How to integrate libcurl in native android project and build using ndk on windows?
[英]Using libcurl with Android NDK
我正在开发一个Android NDK项目,并且我想使用libcurl库从C ++下载资源。 我正在使用NDK的内置ndk-build工具。 在构建过程中,出现以下错误:
Build command failed.
Error while executing process /Users/afarm/Library/Android/sdk/ndk-bundle/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/Users/afarm/AndroidStudioProjects/NativeOpenGL/engine/Android.mk APP_ABI=armeabi NDK_ALL_ABIS=armeabi NDK_DEBUG=1 APP_PLATFORM=android-15 NDK_OUT=/Users/afarm/AndroidStudioProjects/NativeOpenGL/engine/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/Users/afarm/AndroidStudioProjects/NativeOpenGL/engine/build/intermediates/ndkBuild/debug/lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
Android NDK: /Users/afarm/AndroidStudioProjects/NativeOpenGL/engine/Android.mk: Cannot find module with tag 'libcurl' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
这是我的Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := engine-core
LOCAL_CFLAGS := -Wall -Wextra
APP_CPPFLAGS := -std=c++11
APP_STL := gnustl_static
NDK_TOOLCHAIN_VERSION := clang
LOCAL_SRC_FILES := src/main/cpp/rendererwrapper.cpp \
src/main/cpp/renderer.cpp \
src/main/cpp/ShaderProgram.cpp \
src/main/cpp/SimpleShaderProgram.cpp \
src/main/cpp/NativeOpenGLShaderPrograms.c
LOCAL_STATIC_LIBRARIES := libcurl
LOCAL_LDLIBS := -llog -lGLESv2 -landroid
include $(BUILD_SHARED_LIBRARY)
$(call import-add-path,src/main/cpp)
$(call import-module,libcurl)
我已经下载了curl / libcurl版本,并将其放置在src / main / cpp /目录中。 我正在寻找一种在项目中包含libcurl的方法。 需要明确的是,我想使用正式的libcurl发行版(而不是移植的版本)。
我没有从源代码编译libcurl,但是我确实找到了此链接 ,其中包含为Android预先构建的静态libcurl二进制文件(还包括iOS二进制文件)。
为了后代,这是我的新Android.mk(的一部分):
LOCAL_PATH := $(call my-dir)
################################
# Prepare libcurl
include $(CLEAR_VARS)
LOCAL_MODULE := libcurl
LOCAL_SRC_FILES := libs/libcurl/$(TARGET_ARCH_ABI)/libcurl.a
LOCAL_EXPORT_C_INCLUDES := libs/libcurl/include
include $(PREBUILT_STATIC_LIBRARY)
################################
################################
# Build engine
include $(CLEAR_VARS)
LOCAL_MODULE := engine-core
LOCAL_CFLAGS := -Wall -Wextra
LOCAL_CPPFLAGS := -std=c++11
LOCAL_SRC_FILES := src/main/cpp/rendererwrapper.cpp \
src/main/cpp/renderer.cpp \
src/main/cpp/ShaderProgram.cpp \
src/main/cpp/SimpleShaderProgram.cpp \
src/main/cpp/NativeOpenGLShaderPrograms.c
LOCAL_STATIC_LIBRARIES := libcurl
LOCAL_LDLIBS := -llog -lGLESv2 -landroid
include $(BUILD_SHARED_LIBRARY)
################################
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.