【问题标题】:Git for Windows - The Program can't start because libiconv2.dll is missing适用于 Windows 的 Git - 程序无法启动,因为缺少 libiconv2.dll
【发布时间】:2011-03-26 18:32:29
【问题描述】:

当我尝试从 Windows 7(64 位)上的 git Bash 运行某些命令(例如 git push)时,出现错误:

The program can't start because libiconv2.dll is missing from your computer

我已经彻底寻找解决方案。
我能找到的最多的是 google 代码站点 (Issue 419) 和其他一些博客上的问题线程。据我所知,帖子中提供的任何建议都不能真正解决我的问题。

我已尝试重新安装。我尝试将$GIT/bin 添加到PATH。
我可以验证 dll 是否在 $GIT/bin 目录中……但我仍然无法推送到远程。

我在另一个 Windows 7 机器上安装了 msysgit,并且在两种情况下我都以相同的方式安装......所以不用说我很困惑。

对此的任何帮助将不胜感激。

谢谢,

【问题讨论】:

  • DLL 不应该在 $GIT/lib 而不是 $GIT/bin 中吗?至少,这是它在 Linux/UNIX 上的工作方式,库位于 lib 目录中。我不知道 msysgit 是否使用相同的布局方案,但它会很快检查。
  • 这个问题应该作为一个 bug 提交给 Git 开发。但是对于我的一生,我在 Git 网站上找不到任何“提交错误”链接......
  • 第一个答案有效,您应该将其标记为已解决!
  • @DavidZ - 你解决了我的问题。您的回答必须是此处接受的答案。
  • @Groundshaker 不,首先我发布了 comment,而不是答案;它并没有解决原始发帖人的问题,所以即使它是一个答案,也不应该被接受。无论如何,现有的几个答案似乎已经涵盖了这个修复(显然应该是libexec 而不是lib),所以我不会发布重复它们的东西。 (但我很高兴我的评论很有用。)

标签: git msysgit


【解决方案1】:

试试下面的命令:

sudo rm -rf /Library/Developer/CommandLineTools 

并安装开发者工具

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我使用的是 Windows 10,解决这个问题非常容易。

    从以下位置下载 dll 文件:

    https://www.dll-files.com/libiconv-2.dll.html

    直接解压或粘贴到mingw文件夹,如果你使用默认选项安装的话,一般在C盘。希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      在 Mac 上的 SmartGit 中遇到了这个问题。 通过更改来修复它 首选项 -> 命令 -> 可执行文件

      Git 可执行文件:

      来自

      /usr/bin/git
      

      到:

      /usr/local/git/bin/git
      

      【讨论】:

      • 谢谢!就我而言,我不得不使用 /usr/local/bin/git。
      【解决方案4】:

      解决这个问题:http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

      • cd 进入你的 git 安装目录
      • copy mingw\bin\libiconv-2.dll libexec\git-core
        (或copy bin\libiconv-2.dll libexec\git-core,如果您的安装没有mingw 文件夹)

      在链接的帖子中,Drew 寻求帮助,因此,如果您认为可以帮助解决问题,您可能需要在该 Google 网上论坛帖子中回复。

      这些构建发生错误:

      • msysgit-fullinstall-1.7.4 或 1.7.6(和 1.7.7)
      • msysgit-netinstall-1.7.4 或 1.7.6(和 1.7.7)
      • Git For Windows 1.7.6(但不是 1.7.4)

      【讨论】:

      • 这是我的问题的解决方案。我认为值得注意的是,此解决方案特别适用于 submodule update 期间的错误,但也可以修复其他实例。
      • 使用 git-1.7.8 我需要从另一个方向复制文件; libiconv2.dll 存在于libexec/git-core,但需要复制到bin(或链接:mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll)。
      • 这个解决方法为我修复了 Windows 2003 x64 上的 msysGit 1.7.7.1。当我尝试运行 git submodule init 时它失败了,可悲的是,我最初能看到的唯一症状是 Jenkins 的工作会无限期地挂起。 (从 Git Bash 窗口运行 git submodule init 向我显示了真正的错误。)谢谢!
      • @grapple 的修复适用于我的最新版本 1.7.10-preview20120409,但它是 libiconv-2.dll。
      • TLDR:Atlassian Sourcetree:将libiconv2.dll 复制到libexec/git-core 中,如所述。将 libiconv2.dll 重命名为 libiconv-2.dll。尝试使用最新版本的 Atlassian Sourcetree 时,我遇到了同样的错误。 Sourcetree 设置为使用外部 Git(而不是嵌入式)。显然libiconv2.dll 和libiconv-2.dll 是同一个文件,但是SourceTree 查找名为libiconv-2.dll 的文件,而不是libiconv2.dll。因此,如果您使用源代码树,则需要在将 libiconv2 移动到 git-core 后重命名它。
      【解决方案5】:

      SourceTree 的一种可能解决方案:

         1.Open the "Option" window.
         2.Select "Git".
         3.Than "Use System Git".
         4.And press OK button.
      

      【讨论】:

      • 为我工作。由于某种原因,SourceTree 在更新后切换到了嵌入式 git,导致了这个问题。
      【解决方案6】:

      从以下位置复制所有 .dll:

      C:\Users\YOURUSERNAME\AppData\Local\GitHub\PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0\mingw32\bin

      到:

      C:\Users\YOURUSERNAME\AppData\Local\GitHub\PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0\mingw32\libexec\git-core

      【讨论】:

        【解决方案7】:

        我使用的是 GitHub Desktop Version 并且遇到了同样的问题,我通过 Setting-->Options-->Default shell 更改了 Default shell 并检查了 Git bash。我开始“打开 Git shell”并运行“git pull”命令,它解决了问题。它在我的情况下有效。

        【讨论】:

          【解决方案8】:

          如果在 Windows 上启动 SourceTree 时出现错误“缺少 libiconv-2.dll”,以下对我有用(Win 8.1):

          去

          C:\Users\$USERNAME$\AppData\Local\Atlassian\SourceTree\git_local\bin
          

          复制

          libcrypto.dll
          libcurl.dll
          libiconv-2.dll
          libssl.dll
          

          到

          C:\Users\$USERNAME$\AppData\Local\Atlassian\SourceTree\git_local\libexec\git-core
          

          【讨论】:

            【解决方案9】:

            我个人通过阅读从 getopt.exe 得到的错误解决了它,它告诉我它缺少“libiconv2.dll”。我在 C:\ 中有 libiconv-2.dll(注意破折号“-”)程序文件 (x86)\Git\bin。制作一个副本并将其命名为 libiconv2.dll 对我有用...

            我使用了一些巧克力包......也许实际文件在其开发生命周期内被重命名......并且包中的依赖项没有......

            希望它可以帮助那里的人:)

            【讨论】:

              【解决方案10】:

              由于 SmartGit 在错误结果中引用了这个 stackoverflow 页面,我认为这些知识可能对这里的某个人有用....

              有时虽然git安装没有问题。即使您可以使用 git bash 并通过键入

              来获取版本信息
              git -- version 
              

              SmartGit 不添加存储库并返回 git 已过时或无法获取版本信息(或类似于此消息)...

              如果是这样,您最好先检查您的安全实用程序和病毒清除应用程序设置。在我的情况下,禁用 comodo 防火墙使 smartgit 能够看到健康的 git 安装和版本信息。

              【讨论】:

                【解决方案11】:

                就我而言,我使用 Chocolatey (chocolatey.org) 来安装 git。

                我必须将 libconv-2.dll 复制到 C:\ProgramData\chocolatey\bin 才能使其正常工作。我不确定是否也必须将文件复制到C:\Program Files (x86)\Git\libexec\git-core,就像我先做的那样。

                【讨论】:

                  【解决方案12】:

                  在尝试配置 meanio 时,我不得不处理同样的错误消息,其中 git 是先决条件(我的特定错误是:未找到先决条件:git)。
                  我想出的修复需要从

                  复制 libiconv2.dll
                  C:\Program Files (x86)\Git\bin
                  

                  到

                  C:\Program Files (x86)\Git\libexec\git-core
                  

                  然后我不得不对windows系统环境变量做一些调整(右键计算机,进入属性,点击左侧竖栏的“高级系统设置”,选择环境变量) 进入环境变量后,查看系统变量框。找到

                  PATH
                  

                  变量并添加三个新的引用:

                  C:\Program Files (x86)\Git\bin;
                  C:\Program Files (x86)\Git\cmd;
                  C:\Program Files (x86)\Git\libexec\git-core
                  

                  这样,所有必需的 git 文件都可以通过系统路径访问。

                  希望这会有所帮助!

                  【讨论】:

                    【解决方案13】:

                    我为 Windows 安装了 Git,然后为了复制 .dll 而安装了 Git

                    这对我不起作用。为了解决这个问题,我不得不添加路径:

                    C:\Users\*username*\AppData\Local\GitHub\PortableGit_015aa71ef18c047ce8509ffb2f9e4bb0e3e73f13\cmd

                    到PATH 环境变量。

                    这解决了问题,我现在可以从命令提示符访问 git。

                    【讨论】:

                    • 我正在使用Sublime Text 2 的 Git 插件,我遇到了这个问题并通过在插件设置中添加类似的路径来解决它,但所有反斜杠转义如下:C:\\Users\\*username*\\AppData\\Local\\GitHub\\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\\bin\\git.exe跨度>
                    【解决方案14】:

                    sqzaman 的回答有所不同,因为我没有将文件夹放在与他们相同的位置:

                    Copy
                    %USERPROFILE%\Local Settings\Application Data\GitHub\PortableGit_*\bin\*.dll
                    to
                    %USERPROFILE%\Local Settings\Application Data\GitHub\PortableGit_*\libexec\git-core
                    

                    请注意,我从复制 libiconv-2.dll 开始,但后来它抱怨 libcurl.dll,所以我继续复制 *.dll

                    【讨论】:

                    • 经过反复试验,我发现将 libcrypto.dll、libcurl.dll、libiconv-2.dll 和 libssl.dll 复制到 git-core 目录并且适用于一个存储库(最小解决方案) .如果我最终也为其他人复制所有其他人,我不会感到惊讶。
                    【解决方案15】:

                    我一直被这个问题困扰,为了解决这个问题,我卸载了tortoisegit和msysgit,然后我重新安装了“Git-1.8.1.2-preview20130201”。

                    通过这样做,这纠正了我的问题,我无法使用 poshgit。

                    【讨论】:

                      【解决方案16】:

                      为了解决这个问题,我实际上必须将所有 DLL 从 mingw/bin/ 复制到 bin/(一次不覆盖任何现有的)。我使用远程 HTTPS 存储库,但它一直在抱怨。

                      【讨论】:

                        【解决方案17】:

                        我在 Windows 7 上运行 \msysgit\bin\git.exe 时遇到了同样的错误。 我通过将\msysgit\mingw\bin\libiconv-2.dll复制到Win 7安装目录的根目录来修复它。

                        【讨论】:

                          【解决方案18】:

                          我的回答解决了 msysgit 的相同错误,但可能对纯 git 有所帮助。

                          在 Windows 7 上,我将 <msysgit_dir>\mingw\bin 添加到 PATH as so_mv has recommended above(通过系统变量 GUI),但之后我必须注销并登录操作系统,否则 @987654324 @ 值不会更新。

                          【讨论】:

                            【解决方案19】:

                            我刚刚尝试在 Windows 上安装 SmartGIT 并遇到同样的问题。我只是发现它不是通过将它指向 git.exe 来工作的,而是我将它指向 C:\msysgit\cmd\git.cmd。到目前为止,它工作得很好。我可以访问msysgit下的git仓库。

                            仅供参考,我正在使用适用于 Windows 的 Net 安装程序。

                            希望这是正确的方法。

                            【讨论】:

                            • 我在 Windows 上使用 GIT,对我来说它通过指向 git.exe 来工作。
                            【解决方案20】:

                            我最初尝试通过复制此处提到的 dll 来解决此问题,但很快遇到了其他问题。对我来说,真正的解决方案是在我的 .bashrc 文件中为 msys 设置路径,以优先考虑 msys 二进制文件。

                            打开 msys shell 和 ~/.bashrc 中的以下行:

                            导出 PATH=/usr/local/bin:/mingw/bin:/bin:$PATH

                            【讨论】:

                              【解决方案21】:
                              • 复制/Program Files/Git/bin/libiconv-2.dll
                              • 到 /Program Files/Git/libexec/git-core/

                              【讨论】:

                              • 谢谢,这为我在运行 git 版本 1.7.7.1.msysgit.0 的 Win7 机器上修复了它
                              • 只是想说明一下——我的错误信息指定为 libiconv2.dll 并且我在 /bin 中有 libiconv2.dll 和 libiconv-2.dll。
                              • 这很有帮助,谢谢。如果像我一样没有这些文件夹,请在 %USERPROFILE%\Local Settings\Application Data\GitHub 中查找它们(请参阅我的答案)
                              【解决方案22】:

                              我在 Win 7 上使用 msysGit-fullinstall-1.7.3.1-preview20101002.exe 看到了这个错误。

                              Added <msysgit_dir>\mingw\bin to PATH 
                              

                              修复它。 在该目录中找到了 libiconv2.dll。

                              【讨论】:

                              • 这对我不起作用,必须将 DLL 复制到 %WINDIR% (C:\windows)
                              • 我在路径中添加了c:\MinGW\bin,并且修复了它。
                              【解决方案23】:

                              我已经解决了这个问题……这里有几点需要注意。

                              1) 问题是我在本地 .git/config 文件中配置的来源有错字...所以我是个白痴。

                              2) Git Bash 在这种情况下不会正常失败,然后将这个非常误导性的错误作为警报抛出,而不是报告 .git/config 文件中指定的名称没有配置来源。

                              我能够解决这个问题的唯一方法是添加 $GitPath/cmd 目录 到我的路径并从命令行运行 git。在那里,我能够收到一条详细的错误消息,表明远程存储库尚不存在。然后我打开了值得信赖的 vi 编辑器,发现实际上是一个错字。

                              这里的教训。如果您在使用 msysgit 时遇到奇怪的 .dll 错误,这很可能是由于配置错误......而不是某些系统异常或安装问题。

                              感谢所有为此提供帮助的人!

                              【讨论】:

                              • +1。如果出现错误,请始终使用最小的本机 CMD 会话。它通常具有指导意义。
                              • 谢谢,这解决了我的问题我在 windows 路径中将 msysGit\bin 更改为 msysGit\cmd。
                              • copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\bin 我使用“msysGit-netinstall-1.9.4-preview20140611”安装
                              【解决方案24】:

                              我在 Windows7 上有 msysgit,没有任何 DLL 问题。

                              我在 bin 目录中有 libiconv2.dll:C:\Path\To\Git\1.7.1\bin

                              issue 419 是关于安装“为 Windows 编译 Git 的开发环境”的人,而不仅仅是 Git。
                              看到这个SO answer for the difference between the two。

                              那么你安装的是哪一个?

                              • Git-1.x.x.x...? (如“Git-1.7.0.2-preview20100309.exe”),
                              • 或msysGit-netinstall-1.x.x...? (如“msysGit-netinstall-1.7.1-preview20100612.exe”)。

                              【讨论】:

                              • 我安装了.. Git-1.7.0.2-preview20100309.exe 我绝对意识到问题 419 是开发人员安装的,但它是我能找到的关于这个主题的唯一搜索结果之一,所以我希望它可能会提供一些见解。我的 libconv2.dll 在 C:\Path\To\Git\bin 中,这只是默认安装位置。
                              • @thankyoud:我明白(你的问题似乎有据可查)。只是想在我的回答中更清楚地说明这一点,以便其他人看到差异。我看到的 Git 无法运行的唯一其他问题与 ACL 有关(例如某种 dll 注册问题或%TEMP% 写作问题)。这方面有什么线索吗?
                              • 我不知道,%temp% 目录似乎对我当前的帐户具有完全访问权限。 bash 时,git 是否在管理员以外的帐户下运行?此外,正如我之前提到的,这在我完成的任何其他 Windows 7 安装中从未发生过......所以这就是我如此困惑的原因。也就是说,过去我从来不需要摆弄文件权限。
                              • @thankyoud:奇怪。 “便携式”安装怎么样? (只需解压缩,并将cmd 目录添加到您的路径):它会表现出相同的错误行为吗?
                              • @thankyoud:在这个特定的 Windows7 上 PATH 是否有任何冲突?您是否看到与 'minimal PATH' 相同的错误? IE。 "C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
                              【解决方案25】:

                              解决此问题的最快方法是在另一台电脑上找到 *.dll 文件并复制它 =)

                              【讨论】:

                                猜你喜欢
                                • 1970-01-01
                                • 2011-08-01
                                • 2012-01-03
                                • 2019-03-21
                                • 2011-06-09
                                • 2017-09-04
                                • 2016-01-13
                                • 2014-07-10
                                • 2019-01-12
                                相关资源
                                最近更新 更多