Windows的Git-程序无法启动,因为缺少libiconv2.dll


93

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

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

我已经详尽搜索了解决方案。
我能找到的最多的是Google代码站点(第419期)上的一个问题线程,以及其他一些到处都是的博客。据我所知,帖子中提供的任何建议都无法真正解决我的问题。

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

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

任何帮助,将不胜感激。

谢谢,


1
DLL是否应该位于$ GIT / lib中而不是$ GIT / bin中?至少,这就是它在Linux / UNIX上的工作方式,库位于lib目录中。我不知道msysgit是否使用相同的布局方案,但是检查起来很快。
David Z

该问题应作为Bug提交给Git开发。但是对于我一生,我在Git网站上找不到任何“提交错误”链接...
Andriy Drozdyuk

1
第一个答案有效,您应该将其标记为已解决!
erikbwork 2012年

@DavidZ-您解决了我的问题。您的答案必须是此处接受的答案。
Mekey Salaria 2014年

@Groundshaker不,首先我发表评论,而不是回答;而且它并不能解决原始海报的问题,因此即使是答案,也不应该接受。无论如何,似乎已有的一些答案已经涵盖了此修复程序(显然应该libexec代替lib),因此我不会发布重复它们的内容。(但很高兴我的评论很有用。)
David Z

Answers:


104

可通过以下线程解决:http : //groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd 进入您的git install目录
  • 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)
  • 适用于Windows的Git 1.7.6(而非 1.7.4)

5
这是解决我的问题的方法。我认为值得注意的是,此解决方案特别适用于期间的错误submodule update,但也可以修复其他实例。
gapple

9
使用git-1.7.8,我需要在另一个方向上复制文件。libiconv2.dll存在于中libexec/git-core,但需要复制到bin(或链接到:)mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll
gapple

此解决方法为我修复了Windows 2003 x64上的msysGit 1.7.7.1。当我尝试跑步时失败了git submodule init,可悲的是,我最初看到的唯一症状是詹金斯的工作会无限期地挂起。(git submodule init从Git Bash窗口运行向我展示了真正的错误。)谢谢!
保罗·卡林

4
@grapple的修复程序对我来说适用于最新版本1.7.10-preview20120409,除了它 libiconv-2.dll
索拉

1
TLDR:Atlassian源树:如所述复制libiconv2.dlllibexec/git-core。重命名libiconv2.dlllibiconv-2.dll。尝试使用最新版本的Atlassian Sourcetree时,我遇到了同样的错误。Sourcetree设置为使用外部Git(而不是嵌入式)。显然libiconv2.dlllibiconv-2.dll是相同的文件,但是SourceTree查找名为libiconv-2.dll而不是的文件libiconv2.dll。因此,如果您使用的是源代码树,则需要将libiconv2移至git-core后重命名。
布兰登S.

42
  • 复制/ Program Files / Git / bin / libiconv-2.dll
  • 到/ Program Files / Git / libexec / git-core /

1
谢谢,这已在运行git版本1.7.7.1.msysgit.0的Win7计算机上为我修复了
jesal 2011年

1
只是想说明一下-我的错误消息指定了libiconv2.dll,并且我在/ bin中同时拥有libiconv2.dll和libiconv-2.dll。
Roger_S 2012年

1
这很有帮助,谢谢。如果像我一样,您没有这些文件夹,请在%USERPROFILE%\ Local Settings \ Application Data \ GitHub(请参阅我的答案)中查找它们
wytten

15

我已经解决了这个问题...这里有几件事要注意。

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

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

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

这节课。如果使用msysgit遇到怪异的.dll错误,则很可能是配置错误的结果……而不是某些系统异常或安装问题。

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


1
+1。如果发生错误,请始终使用最小的本地CMD会话。通常具有指导意义。
VonC

谢谢,这解决了我的问题,我在Windows路径中将msysGit \ cmd更改为msysGit \ bin。
雷诺德2013年

copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\bin我使用“ msysGit-netinstall-1.9.4-preview20140611”进行安装
Jeflopo 2014年

14

我在Win 7上看到msysGit-fullinstall-1.7.3.1-preview20101002.exe出现此错误。

Added <msysgit_dir>\mingw\bin to PATH 

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


2
这对我不起作用,必须将DLL复制到%WINDIR%(C:\ windows)
jamiebarrow11年

我添加c:\MinGW\bin到路径,并固定它。
JellicleCat

10

在Mac上的SmartGit中出现此问题。通过在首选项->命令->可执行文件中进行更改来修复它

Git可执行文件:

/usr/bin/git

至:

/usr/local/git/bin/git

2
谢谢!就我而言,我必须使用/ usr / local / bin / git。
ezequielc

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


1
经过一番尝试和错误后,我发现将libcrypto.dll,libcurl.dll,libiconv-2.dll和libssl.dll复制到git-core目录,并且可用于一个存储库(最小解决方案)。如果我最终也为他人复制了所有其他内容,也不会感到惊讶。
alle_meije 2014年

3

由于SmartGit在错误结果中引用了该stackoverflow的页面,因此我认为此知识可能对此处的人员有用...。

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

git -- version 

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

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



2

我只是尝试在Windows上安装SmartGIT并遇到相同的问题。我只是想知道它不能通过将其指向git.exe来工作,而是将其指向C:\ msysgit \ cmd \ git.cmd。到目前为止,一切正常。我可以在msysgit下访问git存储库。

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

希望这是正确的方法。


1
我在Windows上使用GIT,对我来说,它通过指向git.exe起作用。
Mandeep Janjua

2

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

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


2

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


1

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


1

我安装了Windows版Git,然后安装了Git以复制.dll

这对我没有用。为了解决这个问题,我必须添加路径:

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
Jasdeep Khalsa 2014年

1

我个人通过阅读从getopt.exe得到的错误解决了该问题,该错误告诉我它丢失了“ libiconv2.dll”。.我在C:\ Program Files中有libiconv-2.dll(注意破折号“-”)( x86)\ Git \ bin。制作副本并将其命名为libiconv2.dll帮了我大忙。

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

希望它能对某人有所帮助:)


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

1

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

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

为我工作。由于某种原因,更新后SourceTree切换到嵌入式git,从而导致了问题。
starteleport

0

我在Windows7上具有msysgit,而对任何DLL都没有任何问题。

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

问题419大约是人谁安装了“开发环境编写的Git的Windows”,不只是Git的。
请参阅此SO答案以了解两者之间的区别

那么,您安装了哪一个?

  • 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我确实意识到Issue 419是开发人员安装的程序,但这是我可以在这个主题上找到的唯一搜索结果之一,因此我希望它可以提供一些见解。我的libconv2.dll位于C:\ Path \ To \ Git \ bin中,这只是默认的安装位置。
user413945 2010年

@thankyoud:我了解(而且您的问题似乎有据可查)。只是想让我的回答更加清楚,其他人才能看到区别。我在Git上遇到的唯一其他运行困难的问题与ACL有关(例如某种dll注册问题或%TEMP%写入问题)。在这方面有什么线索吗?
VonC

我不知道,%temp%目录似乎对我当前的帐户具有完全访问权限。当您进行bash操作时,git是否以管理员以外的其他帐户运行?另外,正如我之前提到的,这在我完成的任何其他Windows 7安装中都从未发生过……这就是为什么我如此困惑。就是说,过去我不需要摆弄文件权限。
user413945 2010年

@thankyoud:奇怪。那“便携式”安装又如何呢?(只需将其解压缩,然后将cmd目录添加到您的路径中即可):它会表现出同样的错误行为吗?
VonC

@thankyoud:PATH在此特定Windows7上是否存在任何冲突?您看到带有“最小PATH” 的相同错误吗?即"C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
-VonC

0

我最初试图通过复制dll来解决此问题(如此处所述),但很快遇到了其他问题。对我来说,真正的解决方案是在.bashrc文件中为msys设置路径,以对msys二进制文件进行优先级排序。

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

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


0

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

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


0

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

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


0

我使用的是GitHub桌面版本,并且遇到相同的问题,我通过设置->选项-->默认外壳更改了默认外壳,并检查了Git bash。我启动了“ Open Git shell”并运行了“ git pull”命令,它解决了问题。就我而言,它奏效。


0

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

C:\ Users \您的用户名\ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ bin

至:

C:\ Users \您的用户名\ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ libexec \ git-core


0

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

从以下位置下载dll文件:

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

提取或直接将其粘贴到mingw文件夹中,如果使用默认选项安装它,则通常在C驱动器中。希望能帮助到你。



-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文件都可以在系统路径上访问。

希望这可以帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.