1

我已经在我的应用程序的JNI文件夹中编写了 C++ 文件。我正在使用带有NDKCygwin 1.7的Windows系统。我想参考 Cygwin 中可用的 CURL 库。在 Android 中创建 JNI 应用程序时,我们如何引用外部 .h(libraries/header) 文件?我创建了一个组合的 Android 和 C++ 项目。但我指的是 CURL 头文件。当我构建项目时,我遇到了致命错误: curl/curl.h:没有这样的文件或目录问题。




4

4 回答 4

0

请使用本教程是不错的。

将项目转换为 C/C++ 原生项目后不要忘记更改此设置。

构建命令的构建器设置

bash C:\tools\android-ndk-r8b-windows\android-ndk-r8b\ndk-build

这是我的 NDK 路径,您可以根据您的 NDK 路径更改此路径。

于 2012-11-21T12:35:48.677 回答
0

当你得到那个 libcurl.a 文件时,不要忘记复制 curl 的 headers 文件夹(从 Cygwin 进入你的usr/include/curl)并将这个文件夹添加到你项目中的 JNI 中,所以它在编译时知道头文件.

这意味着还要在您的Android.mk中引用:

对于 libcurl 库

LOCAL_SRC_FILES := libcurl.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/curl

和你的 C++ 文件

LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/curl
LOCAL_WHOLE_STATIC_LIBRARIES := libcurl
于 2012-11-22T13:30:04.577 回答
0

将以下内容添加到您的Android.mk:

LOCAL_CFLAGS += -I$/PATH/TO/YOUR/curl.h
LOCAL_LDLIBS += -L$/PATH/TO/YOUR/libcurl.a.for.android -lcurl

您在 cygwin 中安装的libcurl.a不能用于 android,您需要一个针对 android 的版本。如果没有,请自行构建。

于 2012-11-22T09:37:45.277 回答
0

按着这些次序:

从 Android 项目转换为 C/C++ 项目:右键单击您的项目名称,转到“Android 工具”并单击“添加本机支持”

添加外部 .h 文件的路径:右键单击项目名称,转到“属性”,在“C/C++ 常规”下,转到“路径和符号”,在“包含”选项卡下,添加您的 .h 文件所在的文件夹。 h 文件是。如果要求,请记住添加到所有语言和配置。

此外,由于您在 Windows 中,我认为您需要将 Build 命令(位于项目属性的“C/C++ Build”部分)更改为“bash C:\Development\android-ndk-r8\ndk-构建.cmd"

于 2012-11-21T12:48:17.383 回答