1

我有一个与此处发布的类似的问题:

Android NDK:为什么 ndk-build 不在 Eclipse 中生成 .so 文件和新的 libs 文件夹?

...虽然我运行的是 Windows 7,而不是 Mac 操作系统。基本上运行 ndk-build 命令,没有给出错误,但没有创建 .so 文件(另外,因为我在 Windows 上,这应该创建一个 .dll 而不是 .so?)。我尝试从 root、jni、src 文件夹等运行命令,但得到了相同的结果;cmd 几秒钟后才返回提示符。我使用 NDK_LOG=1 参数从 jni 文件夹再次运行它以查看发生了什么。这是在 jni 文件夹中运行 ndk-build 后(成功识别平台后等)后的部分日志结果记录...

Android NDK:在 /workspace/NdkFooActivity/jni 中
寻找 jni/Android.mk Android NDK:在 /workspace/NdkFooActivity 中寻找 jni/Android.mk
Android NDK:找到了!
Android NDK:找到项目路径:/workspace/NdkFooActivity
Android NDK:输出路径:/workspace/NdkFooActivity/obj
Android NDK:解析/cygdrive/c/android-ndk-r8/build/core/default-application.mk
Android NDK:在 /workspace/NdkFooActivity/project.properties 中找到 APP_PLATFORM=android-15
Android NDK:应用程序本地目标未知平台 'android-15'
Android NDK:切换到 android-14
Android NDK:使用构建脚本 /workspace/NdkFooActivity/jni/Android .mk
Android NDK:应用程序“本地”不可调试
Android NDK:选择发布优化模式(应用程序不可调试)
Android NDK:添加导入目录:/cygdrive/c/android-ndk-r8/sources
Android NDK:为 ABI 'armeabi' 构建应用程序'local'
Android NDK:使用目标用于“armeabi”ABI
Android NDK 的工具链“arm-linux-androideabi-4.4.3”:寻找带有标签“cxx-stl/system”的导入模块
Android NDK:探测 /cygdrive/c/android-ndk-r8/sources/ cxx-stl/system/Android.mk
Android NDK:在 /cygdrive/c/android-ndk-r8/sources/cxx-stl/system 中找到
Android NDK:Cygwin 依赖文件转换脚本:

...之后它只运行最后一行中提到的脚本,然后终止。有任何想法吗?谢谢!

4

3 回答 3

2

设置生成器。有关如何执行此操作,请参阅以下文章:

http://maxters.net/2011/02/android-ndk-builder-for-eclipse-in-windows/

从 NDK r8 开始有一个“小”变化——不再需要 Cygwin,我在使用 Cygwin 和 NDK r8 构建本机库时遇到了麻烦——有一些关于 cxx-stl 的错误消息...

上面链接中的几乎所有内容都可以,但将主选项卡中的参数留空并将位置更改为:

${env_var:ANDROID_NDK_ROOT}/ndk-build.cmd

我使用系统变量 path ANDROID_NDK_ROOT,但您可以提供 ndk-build.cmd 的完整路径。此外,无需在“环境”选项卡中设置任何变量。

以这种方式设置您的构建器,您会没事的。

请注意,Android 构建在 Linux 操作系统之上,因此即使您使用的是 Windows,您也将获得带有 .so 扩展名的 Linux 库。

于 2012-06-06T22:57:05.250 回答
1

以下链接具有指导意义,但如果您在 CDT 已弃用(已于 2017 年夏季)之后在 Eclipse 中配置 NDK 支持,则缺少详细信息。

http://maxters.net/2011/02/android-ndk-builder-for-eclipse-in-windows/

您需要在哪里配置外部构建器位置,而不是指向 cygwin\bin\bash.exe 并将您的 ndk-build.cmd 位置添加为参数,这对我在 Windows 7 和 10 上有效。

在外部构建器的“编辑配置”对话框中,执行以下操作: - 对于位置 -> 指定“ndk-build.cmd”的位置。即“D:\Android\NDK\ndk-build.cmd” - 用于参数 -> 只需指定“全部”

于 2017-08-04T09:40:16.433 回答
0

NDK 构建系统依赖通配符来查找要编译的源。如果您在某处有错误的路径,它将找不到任何来源并且什么也不做。非常仔细地检查 Android.mk。除非您发布 Android.mk 和源代码树的描述,否则无法说更多。

于 2012-06-06T22:36:03.210 回答