94

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

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

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

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

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

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

谢谢,

4

25 回答 25

105

从这个线程解决: 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 Groups 线程中回复。

这些构建发生错误:

  • msysgit-fullinstall-1.7.4 或 1.7.6(和 1.7.7)
  • msysgit-netinstall-1.7.4 或 1.7.6(和 1.7.7)
  • 适用于 Windows 1.7.6(但不是1.7.4)的 Git
于 2011-08-02T20:29:55.550 回答
42
  • 复制 /Program Files/Git/bin/libiconv-2.dll
  • 到/程序文件/Git/libexec/git-core/
于 2011-09-21T10:16:11.783 回答
15

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

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

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

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

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

感谢所有试图提供帮助的人!

于 2010-08-07T19:36:35.943 回答
14

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

Added <msysgit_dir>\mingw\bin to PATH 

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

于 2010-10-17T03:41:48.743 回答
10

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

Git 可执行文件:

/usr/bin/git

至:

/usr/local/git/bin/git
于 2017-02-02T20:56:22.477 回答
3

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

于 2013-08-14T17:24:18.050 回答
3

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

有时虽然git安装没有问题。即使您可以使用 git bash 并通过键入获取版本信息

git -- version 

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

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

于 2012-10-21T04:11:18.883 回答
2

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

于 2010-08-07T17:40:06.427 回答
2

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

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

希望这是正确的方法。

于 2012-03-26T08:57:30.290 回答
2

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

于 2011-11-20T14:06:03.627 回答
2

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

在 Windows 7 上,我按照上面的建议添加<msysgit_dir>\mingw\binPATH so_mv(通过系统变量 GUI),但之后我必须注销并登录到操作系统,否则该PATH值将不会更新。

于 2012-07-25T20:25:49.363 回答
1

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

于 2012-08-13T15:03:44.550 回答
1

我安装了适用于 Windows 的 Git,然后安装了 Git 以复制 .dll

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

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

PATH环境变量。

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

于 2013-08-25T00:21:49.300 回答
1

如果在 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
于 2015-08-31T17:10:15.623 回答
1

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

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

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

于 2015-07-31T20:14:11.333 回答
1

SourceTree 的一种可能的解决方案:

   1.Open the "Option" window.
   2.Select "Git".
   3.Than "Use System Git".
   4.And press OK button.
于 2016-06-28T13:34:25.030 回答
0

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

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

问题 419是关于安装了“为 Windows 编译 Git 的开发环境”的人,而不仅仅是 Git。
请参阅this SO answer了解两者之间的区别

那你安装的是哪一个?

  • Git-1.x.x.x...? (如' Git-1.7.0.2-preview20100309.exe'),
  • 还是msysGit-netinstall-1.x.x...?(如' msysGit-netinstall-1.7.1-preview20100612.exe')。
于 2010-08-07T18:31:00.833 回答
0

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

我不得不复制libconv-2.dllC:\ProgramData\chocolatey\bin让它工作。我不确定是否C:\Program Files (x86)\Git\libexec\git-core也必须将文件复制到,因为我首先这样做了。

于 2014-08-11T11:22:38.327 回答
0

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

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

于 2013-02-15T20:59:08.963 回答
0

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

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

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

于 2012-03-09T03:35:51.703 回答
0

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

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

至:

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

于 2016-04-27T02:44:01.593 回答
0

尝试以下命令:

sudo rm -rf /Library/Developer/CommandLineTools 

并安装开发者工具

于 2017-08-07T11:59:15.493 回答
0

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

于 2016-04-02T08:03:28.177 回答
0

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

从以下位置下载 dll 文件:

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

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

于 2017-04-25T09:47:10.660 回答
-1

在尝试配置 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 文件都可以通过系统路径访问。

希望这可以帮助!

于 2014-08-05T15:29:28.477 回答