Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows中Hadoop生成失败:native.sln中缺少zconf.h?_Java_C++_Maven_Hadoop_Visual Studio 2015 - Fatal编程技术网

Java Windows中Hadoop生成失败:native.sln中缺少zconf.h?

Java Windows中Hadoop生成失败:native.sln中缺少zconf.h?,java,c++,maven,hadoop,visual-studio-2015,Java,C++,Maven,Hadoop,Visual Studio 2015,我正试图在使用Windows10家庭版的开发计算机上构建以下hadoop版本 hadoop-2.7.3-src 以下是有关我的本地开发环境的详细信息: -Windows10家庭版 -英特尔酷睿i5-6200U处理器@2.30GHz -RAM 16 GB -64位操作系统,基于x64的处理器 -Microsoft Visual Studio Community 2015版本14.0.25431.01更新3 -还将MSBUILD位置作为C:\Program Files(x86)\MSBUILD\14

我正试图在使用Windows10家庭版的开发计算机上构建以下hadoop版本

hadoop-2.7.3-src

以下是有关我的本地开发环境的详细信息:

-Windows10家庭版

-英特尔酷睿i5-6200U处理器@2.30GHz

-RAM 16 GB

-64位操作系统,基于x64的处理器

-Microsoft Visual Studio Community 2015版本14.0.25431.01更新3

-还将MSBUILD位置作为C:\Program Files(x86)\MSBUILD\14.0\Bin\amd64添加到Windows系统环境变量路径

-.NET Framework 4.6.01586

-cmake版本3.7.2

-CYGWIN NT-10.0 LTPBCV822.7.0(0.306/5/3)2017-02-12 13:18 x86\u 64 CYGWIN

-java版本“1.8.0_121”

-Java(TM)SE运行时环境(build 1.8.0_121-b13)

-Java HotSpot(TM)64位服务器虚拟机(构建25.121-b13,混合模式)

-Apache Maven 3.3.9(bb52d8502b132ec0a5a3f4c09453c07478323dc5;2015-11-10T11:41:47-05:00)

-Google协议缓冲区协议——libprotoc 2.5.0版

此外,我还创建了一个名为Platform的系统环境变量,并将其设置为x64

我打开了Visual Studio 2015(VS2015)的开发人员命令提示符

c:\hadoop\hadoop-2.7.3-src>mvn包-Pdist,本机win-DskipTests-Dtar-X

不幸的是,我遇到以下错误:

 [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]
  ZlibDecompressor.c
c:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]
Done Building Project "C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (default targets) -- FAILED.
Done Building Project "C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (default targets) -- FAILED.

Build FAILED.

"C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.sln" (default target) (1) ->
"C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj" (default target) (2) ->
(ClCompile target) ->
  c:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]
  c:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h(36): fatal error C1083: Cannot open include file: 'zlib.h': No such file or directory [C:\hadoop\hadoop-2.7.3-src\hadoop-common-project\hadoop-common\src\main\native\native.vcxproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:02.49
上述错误与zlib工具有关

在线调查后,有人说需要在Visual Studio中成功构建以下Visual Studio解决方案文件:

....\hadoop-2.7.3-src\hadoop公共项目\hadoop公共\src\main\native\native.sln

在管理员模式下使用Visual Studio 2015,我打开了native.sln文件,立即看到一个错误:


有人能告诉我我必须采取哪些步骤来解决上述错误吗?

因此,为了解决这些问题,我必须采取很多步骤

在..\hadoop-2.7.3-src\hadoop common project\hadoop common\src\main\winutils目录中,我在Visual Studio 2015中打开了以下解决方案:

winutils.sln

在..\hadoop-2.7.3-src\hadoop common project\hadoop common\src\main\winutils\libwinutils.c中,我注释掉了以下代码行,并对其进行了修改,如下所示:

//const WCHAR* wsceConfigRelativePath = WIDEN_STRING(STRINGIFY(WSCE_CONFIG_DIR)) L"\\" WIDEN_STRING(STRINGIFY(WSCE_CONFIG_FILE));

const WCHAR* wsceConfigRelativePath = WIDEN_STRING("../etc/hadoop") L"\\" WIDEN_STRING("wsce-site.xml");
此外,在winutils解决方案的属性窗口中,我必须将平台值设置为x64,如下面的屏幕截图所示:

接下来,我打开Dos命令提示符,检查我的Windows操作系统的确切版本:

弗尔

Microsoft Windows[版本10.0.14393]

此外,我还打开了libwinutils项目的属性窗口,并确保以下快照中标记的属性具有正确的值:

此外,我对winutils项目的属性采取了相同的步骤:

(很抱歉,stackoverflow不允许我放置另一个图片快照,但基本上您需要做的就是确保winutils项目的属性设置正确)

我下载了zlib版本1.2.11的源代码。使用VS2015的开发者命令提示符(Visual Studio 2015),我使用cmake从zlib版本1.2.11源代码构建了zlib

c:\zlib\zlib-1.2.11>cmake  -G "Visual Studio 14 2015" -A x64 c:\zlib\zlib-1.2.11\
-- The C compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - failed
-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Configuring done
-- Generating done
-- Build files have been written to: C:/zlib/zlib-1.2.11
最后,使用cmake运行构建

c:\zlib\zlib-1.2.11>cmake --build .
在Windows系统变量中,我定义了以下变量:


ZLIB_HOME设置为C:\ZLIB\ZLIB-1.2.11

,因此为了解决问题,我必须采取很多步骤

在..\hadoop-2.7.3-src\hadoop common project\hadoop common\src\main\winutils目录中,我在Visual Studio 2015中打开了以下解决方案:

winutils.sln

在..\hadoop-2.7.3-src\hadoop common project\hadoop common\src\main\winutils\libwinutils.c中,我注释掉了以下代码行,并对其进行了修改,如下所示:

//const WCHAR* wsceConfigRelativePath = WIDEN_STRING(STRINGIFY(WSCE_CONFIG_DIR)) L"\\" WIDEN_STRING(STRINGIFY(WSCE_CONFIG_FILE));

const WCHAR* wsceConfigRelativePath = WIDEN_STRING("../etc/hadoop") L"\\" WIDEN_STRING("wsce-site.xml");
此外,在winutils解决方案的属性窗口中,我必须将平台值设置为x64,如下面的屏幕截图所示:

接下来,我打开Dos命令提示符,检查我的Windows操作系统的确切版本:

弗尔

Microsoft Windows[版本10.0.14393]

此外,我还打开了libwinutils项目的属性窗口,并确保以下快照中标记的属性具有正确的值:

此外,我对winutils项目的属性采取了相同的步骤:

(很抱歉,stackoverflow不允许我放置另一个图片快照,但基本上您需要做的就是确保winutils项目的属性设置正确)

我下载了zlib版本1.2.11的源代码。使用VS2015的开发者命令提示符(Visual Studio 2015),我使用cmake从zlib版本1.2.11源代码构建了zlib

c:\zlib\zlib-1.2.11>cmake  -G "Visual Studio 14 2015" -A x64 c:\zlib\zlib-1.2.11\
-- The C compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - failed
-- Looking for fseeko
-- Looking for fseeko - not found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Configuring done
-- Generating done
-- Build files have been written to: C:/zlib/zlib-1.2.11
最后,使用cmake运行构建

c:\zlib\zlib-1.2.11>cmake --build .
在Windows系统变量中,我定义了以下变量:


ZLIB_HOME设置为C:\ZLIB\ZLIB-1.2.11

您能否从pom.xml文件中为您的项目共享
exec maven plugin
配置。可能重复@nullpointer Thx以获取帮助。我从pom.xml中粘贴了exec maven插件配置,还将MSBUILD位置添加为C:\Program Files(x86)\MSBUILD\14.0\Bin\amd64到Windows系统环境变量Path,但如果要使用多个配置文件,而不是使用
-Pdist,它仍然会引发错误,native win
我相信正确的语法是
-Pdist-Pnative win
你能为你的项目共享pom.xml文件中的
exec maven plugin
配置吗?可能是@nullpointer Thx的副本,希望能提供帮助。我从pom.xml中粘贴了exec maven插件配置,还将MSBUILD位置添加为C:\Program Files(x86)\MSBUILD\14.0\Bin\amd64到Windows系统环境变量Path,但如果要使用多个配置文件,而不是使用
-Pdist,native win
,它仍然会引发错误。我相信正确的语法是
-P