Hadoop 构建在 Windows 中失败:native.sln 中缺少 zconf.h?

2024-04-18

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

hadoop-2.7.3-src

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

-Windows 10家庭版

-英特尔酷睿 i5-6200U CPU @2.30GHz

- 内存 16GB

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

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

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

-.NET框架4.6.01586

-cmake版本3.7.2

-CYGWIN_NT-10.0 LTPBCV82DUG 2.7.0(0.306/5/3) 2017-02-12 13:18 x86_64 Cygwin

-java版本“1.8.0_121”

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

-Java HotSpot(TM) 64 位服务器 VM(内部版本 25.121-b13,混合模式)

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

-Google Protocol Buffers protoc --version libprotoc 2.5.0

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

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

c:\hadoop\hadoop-2.7.3-src> mvn package -Pdist,native-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-common-project\hadoop-common\src\main\native\native.sln

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

在此输入图像描述 https://i.stack.imgur.com/g214p.png

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


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

在 ....\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 操作系统的确切版本:

ver

微软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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop 构建在 Windows 中失败:native.sln 中缺少 zconf.h? 的相关文章

  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • Maven中archetype.xml和archetype-metadata.xml有什么区别

    我正在尝试向我的原型添加额外的变量 具体来说 我的原型包含一个 logback xml 文件 我想用我从原型生成的项目的名称填充日志文件名 我正在执行此处答案中的说明将额外的属性传递给 Maven archetype generate ht
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • Chrome 更新破坏了我的滚动子菜单

    在 Windows 和 Osx 中将 Chrome 更新到版本 56 它破坏了我的滚动子菜单 如果我用鼠标滚轮滚动 滚动操作就会起作用 但是如果我将鼠标指针悬停在滚动条上 子菜单就会关闭 我使用以下 css 来滚动子菜单 ul scroll
  • 如何将所有text_node节点值的一部分包装在html元素中?

    我正在迭代 html 文档中的所有文本节点 以便用特定的范围包围一些单词 改变nodeValue不允许我插入 html 这span被转义以纯文本显示 我不希望这样 这是我到目前为止所拥有的 var elements document get
  • 我无法在react-dom/client中使用createRoot函数

    import React from react import as ReactDOMClient from react dom client import App from App import reportWebVitals from r
  • 提取授权号的正则表达式模式

    我在用着GSKinner 的 Reg Exr 工具 http gskinner com RegExr 帮助提出一种模式 可以在包含大量其他垃圾的字段中找到授权号 授权号是一个包含字母 有时 数字 始终 和连字符 有时 的字符串 i e 授权
  • 访客模式的实际优势是什么?有哪些替代方案?

    我读了很多关于访客模式及其假定优势的内容 然而对我来说 在实践中应用它们似乎并没有那么大的优势 方便 和 优雅 似乎意味着大量的样板代码 因此 代码很难遵循 另外 接受 访问 的描述性并不强 如果您的编程语言没有方法重载 即 Vala 那么
  • 在sql server中如何获取用`
    `分开的列值

    在sql server中如何获取列的值 br 分开他们 这里我用逗号分隔 但是我怎样才能得到 br 在sql服务器中的html中 SELECT STUFF SELECT cast Citation Id as nvarchar 500 FR
  • 我的简单 ListView 应用程序正在泄漏内存。我做错了什么?

    首先 我确实先将其发布到 android google 群组 但它经过了审核 我不确定它需要多长时间才能出现在那里 所以希望这里有人可以提供帮助 我创建了一个简单的应用程序 其中 ListView 遵循 ListActivity 我在网上找
  • 有没有办法重新打开套接字?

    我在一些代码中创建了许多 短期 套接字 如下所示 nb 1000 for i in range nb sck socket socket socket AF INET socket SOCK STREAM sck connect adr p
  • 如何让VS忽略Test dll的代码覆盖率

    目前 当我运行代码覆盖率分析时 报告的覆盖率为 90 问题是 另外 10 是实际测试的代码 我怎样才能让VS忽略该测试代码而只考虑实际代码 您可以在项目中添加运行设置文件 在该文件中 您可以提及需要从代码覆盖率中排除的 DLL 名称
  • 多个水豚等待时间?

    我想要有不一样的Capybara我的代码中的等待时间取决于它们通常需要多长时间才能完全加载 我是否必须重复不断地改变Capybara default wait time或者 还有更好的方法 您可以使用使用等待时间 秒 http rubydo
  • 将recvfrom() 与原始套接字一起使用:一般疑问

    我创建了一个原始套接字 它从数据链路层获取所有 IPv4 数据包 删除了数据链路层标头 为了读取我使用的数据包recvfrom 我的疑问是 假设由于操作系统进行了一些调度 我的进程休眠了 1 秒 当它醒来时 它做到了recvfrom 要接收
  • 使用 SSLSocket 的 SOCKS5 代理

    我有一个客户端 服务器应用程序 它通过 Java 的 SSLSocket 远程连接到服务器 我正在尝试实现一种可选模式 通过经过身份验证的 SOCKS v5 代理启用连接 我尝试使用相关教程 http download oracle com
  • 设置目录和子项的权限

    我的程序将一些目录 子目录和文件从服务器复制到本地计算机 我需要 每个本地用户都可以修改它 编辑 删除 删除 重命名 但现在它只能做所有者 如何为复制的目录及其子项目设置必要的权限 我尝试这样的代码 String account Path
  • 关闭 UIScrollView 中的键盘

    好吧 我有几个UITextFields and UITextViews里面一个UIScrollView 我想将键盘设置为消失scrollview被触摸或滚动 当然 当您触摸文本字段 视图内时除外 我目前的尝试是替换UIScrollView与
  • 如何使用 PDO 从 MySQL 获取数字类型?

    我正在使用 PDO 和 MySQL 由于某种原因 当从数据库获取 int 类型的值时 PDOStatement 返回数字的字符串表示形式 而不是数字类型的值 我该如何防止这种情况发生 我注意到 PDO 类有一个属性 PDO ATTR STR
  • jSoup 从 类获取文本

    我有一部分 HTML 文件 格式如下 h6 class uiStreamMessage span class messageBody Welcome span h6 在该文件中 还有其他跨度类 但我只想获取所有 messageBody 范围
  • Castle Windsor 或 Spring.NET - 优点和缺点 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在android中比较两个图像

    在我的应用程序中 我想使用相机捕获两个图像 然后我想比较这些图像 那么 如何比较两个图像呢 编辑 比较第一幅图像与第二幅图像的像素到像素完全相同 谢谢 1 检查高度是否匹配 如果不匹配则返回 false 然后 检查宽度是否匹配 如果不匹配
  • 如何获取从现在到未来时间的月数、周数、天数和小时数?

    我需要使用 Java 找出从现在到未来时间还剩多少月 周 天和小时 我不能使用像 Joda 这样的第三方库 我怎样才能只使用 JDK 类来做到这一点 到目前为止 这就是我想到的 除了某些情况之外 它有点有效 public class Dat
  • Hadoop 构建在 Windows 中失败:native.sln 中缺少 zconf.h?

    我正在尝试在使用 Windows 10 家庭版的开发计算机上构建以下 hadoop 版本 hadoop 2 7 3 src 以下是我本地开发环境的详细信息 Windows 10家庭版 英特尔酷睿 i5 6200U CPU 2 30GHz 内