首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dropbox djinni项目中链接libcurl

如何在dropbox djinni项目中链接libcurl
EN

Stack Overflow用户
提问于 2015-09-25 16:45:41
回答 2查看 349关注 0票数 2

我需要libcurl在dropbox djinni mx3项目中做一些事情;但是当我创建libmx3_android.so时,会显示这个错误消息:“未定义的对‘curl_easy_init’的引用”......因为我不能将libcurl.a链接到这个项目。

对于android jni,我找到一些解决方案,那就是eidt Android.mk。

代码语言:javascript
复制
include $(CLEAR_VARS)
LOCAL_MODULE:= libcurl
LOCAL_SRC_FILES := libcurl.a
LOCAL_EXPORT_C_INCLUDES := /* put the path to the Curl headers here */
include $(PREBUILT_STATIC_LIBRARY)

但在这些项目中,.mk文件将由mx3.gyp重新创建。如何编辑mx3.gyp来创建.mk文件?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-10-06 17:24:15

首先,您需要为所有平台编译.a文件。你可以在这里找到它,https://github.com/gcesarmza/curl-android-ios或者自己编译。然后,您还需要添加为依赖项

代码语言:javascript
复制
"targets": [
    {
        "target_name": "libapplication_jni",
        "type": "shared_library",
        "dependencies": [
          "../support-lib/support_lib.gyp:djinni_jni",
        ],
        "libraries": ["libcurl.a",],
        "ldflags": [ "-llog", "-lz", "-Wl,--build-id,--gc-sections,--exclude-libs,ALL" ],
        "sources": [
          "../support-lib/jni/djinni_main.cpp",
          "<!@(python glob.py generated-src/jni   '*.cpp')",
          "<!@(python glob.py handwritten-src/cpp '*.cpp')",
        ],
        "include_dirs": [
          "../deps/include",
          "generated-src/jni",
          "generated-src/cpp",
          "handwritten-src/jni",
          "handwritten-src/cpp",
        ],
    },
],

最后,将curl包含文件放在deps/include目录中,将此文件放在Android.mk文件的开头

代码语言:javascript
复制
LOCAL_PATH:= $(call my-dir)

#ARM optimizations
ifeq ($(TARGET_ARCH),arm)
  PLATFORM_TARGET_ARCH := armeabi
endif
ifeq ($(TARGET_ARCH),arm64)
  PLATFORM_TARGET_ARCH := arm64-v8a
endif

#x86 optimizations
ifeq ($(TARGET_ARCH),x86)
  PLATFORM_TARGET_ARCH := x86
endif
ifeq ($(TARGET_ARCH),x86_64)
  PLATFORM_TARGET_ARCH := x86_64
endif

#MIPS optimizations
ifeq ($(TARGET_ARCH),mips)
  PLATFORM_TARGET_ARCH := mips
endif
ifeq ($(TARGET_ARCH),mips64)
  PLATFORM_TARGET_ARCH := mips64
endif

include $(CLEAR_VARS)
LOCAL_MODULE:= libcurl
LOCAL_SRC_FILES := /djinni/mobile/deps/prebuilt/android/$(PLATFORM_TARGET_ARCH)/libcurl.a
LOCAL_EXPORT_C_INCLUDES := /djinni/mobile/deps/include
include $(PREBUILT_STATIC_LIBRARY)

我希望它能帮上忙。谢谢

票数 3
EN

Stack Overflow用户

发布于 2015-09-29 14:05:02

‘LOCAL_PATH’:'-L$(LOCAL_PATH)/deps/curl',‘-L$(Llog)/deps/zlib’,'-llog‘,'-lcurl','-lz',

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32778244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档