最近在研究hadoop ,在使用ant clean编译hive源码的时候报出了如下的错误:
[exec] Makefile:138: *** *************
因为make-3.81版、make-3.82.90版在windows下的bug,可以下载make-3.82版本
于是上了make的官网:
http://www.gnu.org/software/make/
下载了make-3.82版本:
http://ftp.gnu.org/gnu/make/make-3.82.tar.bz2
解压make-3.82 ,进入文件夹中,然后创建bat文件内容如下:
@ECHO OFF
SET CYGWIN_ROOT=d:\cygwin
SET LANG=C.UTF-8
SET PATH=%CYGWIN_ROOT%\bin;%PATH%
SET HOME=%~dp0
@bash --login -i
然后运行此bat文件(前提是装了Mingw cygwin版本):
输入命令
./configure
执行一大串信息,然后再输入命令:
Make all
然后将此文件夹下的 make.exe 拷贝到 cygwin/bin下面。
然后重新编译就可以通过了。
PS:
Make 在windows下编译的话,如果不打开cygwin的bash,那么需要下面的三个dll,
cygwin1.dll,cygintl-8.dll,cygiconv-2.dll
这样的话,把make和上面三个dll文件放在一起,放入d:\win32make\bin下面,那么在windows下面的编译脚本就这样写:
@ECHO OFF
SET COMPILER_ROOT=d:\arm-gnu-tools
SET MAKE_DIR=d:\win32make
SET LANG=C.UTF-8
SET PATH=% COMPILER_ROOT%\bin;%MAKE_DIR%\bin;%PATH%
SET HOME=%~dp0
cd /d %HOME%
cmd