【问题标题】:Trying to compile JNI (native) parts of the NDK's San Angeles example (Windows)尝试编译 NDK 的 San Angeles 示例 (Windows) 的 JNI (native) 部分
【发布时间】:2011-07-30 11:39:16
【问题描述】:

我正在尝试按照问题所说的去做——使用 Cygwin shell。我已经根据我在 Google 上搜索过的 2 个基本等效的教程进行了设置,但我无法让 shell/make 过程正常工作。显然缺乏 Unix/Cygwin 技能。

所以,我的 Cygwin 已安装到它的默认位置,并且我还正确设置了 Android SDK 和 NDK(普通的 Java 应用程序可以在 Eclipse 中正常构建/调试)。

这是我修改后的 Cygwin.bat 的样子:

@echo off

set IS_UNIX=
set DEV_ROOT=c:/PROGRA~1/Android/android-ndk-r6/samples/san-angeles
set JAVA_HOME=c:/PROGRA~1/Java/jdk1.6.0_26
set CLASSPATH=c:/PROGRA~1/Android/android-ndk-r6/samples/san-angeles/obj
set PATH=c:/PROGRA~1/Android/android-sdk/tools;c:/PROGRA~1/Android/android-ndk-r6
set ANDROID_NDK_ROOT=c:/PROGRA~1/Android/android-ndk-r6
set NDK_PROJECT_PATH=c:/PROGRA~1/Android/android-ndk-r6/samples/san-angeles
C:
chdir C:\cygwin\bin
bash --login -i

这些路径是正确的。当我将路径更改为 NDK 根目录并键入 ./ndk-build 时,结果如下:

nova@edwmini ~
$ cd c:/progra~1/android/android-ndk-r6

nova@edwmini /cygdrive/c/progra~1/android/android-ndk-r6
$ ./ndk-build
/cygdrive/c/progra~1/android/android-ndk-r6/build/core/build-binary.mk:37: *** t
arget pattern contains no `%'.  Stop.

nova@edwmini /cygdrive/c/progra~1/android/android-ndk-r6
$

我们将不胜感激。

【问题讨论】:

  • 如果我没记错的话,你应该从项目目录编译,而不是 NDK 根目录。
  • ThomasW 是正确的。您需要 cd 到项目(在本例中为 DEV_ROOT),然后调用 ndk-build。另一方面,您应该(除非 Cygwin.bat 工作方式不同)将 :$PATH 添加到 set PATH= 行的末尾,否则您会丢失 PATH 上已经设置的任何其他内容。
  • 谢谢各位大佬,试试看!
  • cd $DEV_ROOT 将我的路径更改为 /cygwin/c/etc 解决了问题!
  • 您能否将解决方案作为答案发布在下面,以便我们将其从未答复列表中删除?谢谢。

标签: android cygwin android-ndk


【解决方案1】:

我已经使用 cmets 解决了这个问题。

首先,我必须转到项目路径才能构建,其次,当我将所有 DOS 路径替换为 posix/Cygwin 路径时,它会有所帮助!这是新的批处理文件:

@echo off
set DEV_ROOT=/cygdrive/c/PROGRA~1/Android/android-ndk-r6/samples/hello-gl2
set IS_UNIX=
set JAVA_HOME=/cygdrive/c/PROGRA~1/Java/jdk1.6.0_26
set ANDROID_NDK_ROOT=/cygdrive/c/PROGRA~1/Android/android-ndk-r6
set PATH=/cygdrive/c/PROGRA~1/Android/android-sdk/tools:%ANDROID_NDK_ROOT%:$PATH
set CLASSPATH=%DEV_ROOT%/obj
set NDK_PROJECT_PATH=%DEV_ROOT%
C:
chdir C:\cygwin\bin
bash --login -i

示例已更改,但您会得到它。另外,@startup,执行:cd $DEV_ROOT

【讨论】:

    猜你喜欢
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多