【问题标题】:Android ndk-build command does nothingAndroid ndk-build 命令什么都不做
【发布时间】:2012-06-10 23:46:39
【问题描述】:

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

Android NDK: why ndk-build doesn't generate .so file and a new libs folder in Eclipse?

...虽然我运行的是 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”构建应用程序“本地”
Android NDK:将目标工具链“arm-linux-androideabi-4.4.3”用于“armeabi”ABI
Android NDK:寻找带有标签“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 依赖文件转换脚本:

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

【问题讨论】:

    标签: android android-ndk cygwin


    【解决方案1】:

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

    【讨论】:

      【解决方案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
      

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

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

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

      【讨论】:

        【解决方案3】:

        如果您在 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” - 对于参数 -> 只需指定“全部”

        【讨论】:

          猜你喜欢
          • 2016-02-28
          • 2017-03-22
          • 1970-01-01
          • 2013-12-08
          • 2014-11-17
          • 2013-05-01
          • 1970-01-01
          • 2018-07-13
          • 1970-01-01
          相关资源
          最近更新 更多