【发布时间】:2015-01-04 09:34:13
【问题描述】:
我是 Android NDK 的新手,我正在努力理解它。到目前为止,我发现 NDK/samples 文件夹中的每个示例都是用 C 编写的,而不是 C++。当我导入这些项目并处理它们时,一切正常。但是,当我在 Eclipse 中创建新项目,然后右键单击项目 -> Android 工具 -> 添加本机支持时,它总是会创建 libname.cpp 文件。自然地,c 代码在复制到 .cpp 文件后不会编译。
我还尝试在 Android.mk 文件的以下行中将 nativetest.cpp 替换为 nativetest.c
LOCAL_MODULE := nativetest
LOCAL_SRC_FILES := nativetest.cpp
但它产生了这个错误:
No rule to make target `jni/nativetest.c', needed by `obj/local/armeabi/objs/nativetest/nativetest.o'. Stop.
我的问题是:如何添加对 .c 文件的原生支持?
【问题讨论】:
-
您是只是更改了
Android.mk中的名称,还是还重命名了实际文件? -
好吧,我刚刚在 Eclipse 中尝试了你的场景:我创建了一个新的 Android 应用程序项目,选择添加本机支持,在 Eclipse 的文件资源管理器中突出显示生成的 .cpp 文件,按 F2 重命名并更改结尾从.cpp 到.c,最后也更改了以
Android.mk结尾的文件。之后项目构建得很好,C文件似乎已经编译成功。 -
我的eclipse安装一定有问题。这样做并复制 hello-ini 代码会导致此问题:link。更重要的是,编译导入的 hello-jni 代码可以正常工作,但在打开 .c 文件后,eclipse 会显示与未解决的包含相关的错误。我会尽量关注this answer
标签: android c eclipse android-ndk