如何设置GNUMAKE变量使ndk-build工作

时间:2011-01-26 15:06:31

标签: android android-ndk makefile cygwin gnu-make

我正在尝试让ndk-build在Windows上的Cygwin中工作。根据NDK文档(特别是INSTALL.htm),“NDK要求GNU Make 3.81或更高版本可用于您的开发。”

我在我的电脑上安装了Gnu Make。

到目前为止,非常好。

在Cygwin bash中,我转到android NDK根目录。现在,当我输入以下命令时(现在没有参数,只是看看命令是否有效):

$。/ NDK-构建
错误:找不到'make'程序。请安装Cygwin make package或定义GNUMAKE变量以指向它。

所以我尝试设置GNUMAKE变量,但没有运气:

$ export GNUMAKE ='/ cygdrive / c \ Program Files \ GnuWin32 \ bin'
错误:您的GNUMAKE变量定义为无效名称:/ cygdrive / c \ Program Files \ GnuWin32 \ bin 请修复它以指向有效的make可执行文件(例如usr / bin / make)

我甚至尝试将其设置为usr / bin / make,因为它建议,但同样的无效名称错误。

任何人都知道如何解决这个问题?

我正在使用Windows 7,NDK r5,Cygwin 1.7.1

8 个答案:

答案 0 :(得分:7)

当把ndk放在一个有空格的文件夹中时,我遇到了GNUMake的问题(我原来把它放在程序文件目录中)。我将所有内容移动到C:/ android / android-ndk和C:/ android / android-sdk并更新了我的路径设置以包含这些目录。

答案 1 :(得分:1)

这是一般错误。这意味着make命令以某种方式存在问题,但错误消息本身是隐藏的。要帮助诊断问题,请在ndk目录中打开ndk_build脚本,然后更改以下行:

ABS_GNUMAKE=`which $GNUMAKE 2> /dev/null`
...
GNUMAKE=`which make 2> /dev/null`

到这些:

ABS_GNUMAKE=`which $GNUMAKE`
...
GNUMAKE=`which make`

然后您将收到更详细的错误消息。请注意,它可能甚至不是'make'命令的问题,它可能是'which'命令的问题。确保安装了cygwin。

答案 2 :(得分:1)

它没有问题,但安装cygwin 在ndk-demo脚本中,找到make路径,使用哪个命令主要是哪个命令 cygwin中缺少安装。

解决方案: 重新启动cygwin安装选择utils(安装)

检查: $ make 应该在cygwin提示符上给你make命令路径。

此致 瓦苏

答案 3 :(得分:1)

删除环境变量GNUMAKE 关闭cygwin终端 再次打开cygwin终端...走你想要建造的路径..现在建造它...... 我很有希望你能成功建造......我做..

答案 4 :(得分:0)

将NDK移动到没有空格的目录的答案绝对正确。之后,您可能可以从Cygwin shell运行ndk-build 但是,从Windows命令行运行ndk-build(如“bash ndk-build”)可能会导致“GNU make”错误导致同样的同步错误。
它也可以用NDK 6b重现 我希望它在最新版本的NDK中得到修复......

答案 5 :(得分:0)

  

错误:找不到'make'程序。请安装Cygwin make package   或定义GNUMAKE变量以指向它。

在尝试安装Cygwin时,我错过了安装MAKE PACKAGE

只需要在搜索框中搜索make,它将显示包含devel branch 的分支,并从devel分支中选择make package。

这是所有问题都已解决。

答案 6 :(得分:0)

我在gygwin终端“gnumake变量被定义为无效名称”的错误上努力工作,之后我明白我们只是通过在系统和用户变量中删除环境变量中的GNUMAKE路径来删除此错误创造它希望它的帮助......

mycomputer&gt;系统属性&gt; <高级系统设置>环境变量

答案 7 :(得分:0)

这里的问题是GNUMAKE变量的名称。给出的名称是

/cygdrive/c\Program Files\GnuWin32\bin将其更改为/cygdrive/c/Program Files/GnuWin32/bin/make

仅使用forword Slash。有时候文件夹结构中的空间没有采取

快乐的编码。