似乎我的 Cygwin 下的 git 坏了,无法执行以下命令/usr/bin/git.exe --version
或/usr/bin/git.exe
无法执行任何操作。如果我git.exe
从 Windows 终端发出特定目录,我会收到以下消息:The procedure entry point __cxa_atexit could not be located in the dynamic link library cygwin1.dll
我已使用apt-cyg
命令安装了以下软件包:
git
git-completion
git-cvs
git-debuginfo
git-email
git-gui
git-oodiff
git-review
git-svn
gitk
gitweb
似乎二进制文件已安装:
$ which git.exe
/usr/bin/git.exe
$ ls -l /usr/bin/git.exe
-rwxr-xr-x+ 112 wakatana Domain Users 1636893 Jan 10 2015 /usr/bin/git.exe
$ md5sum.exe /usr/bin/git.exe
85f986f8c9ee8d9573fd9b1a05af4260 */usr/bin/git.exe
除了上面提到的之外,我没有安装任何其他二进制文件或第三方 git 工具。出了什么问题?
PS:我以非管理员用户身份运行此程序(我不能使用管理员帐户)。
答案1
根据您收到的错误,git
in的版本apt-cyg
链接到了另一个(可能是较新)版本的 Cygwin。您收到的错误消息表明 DLL cygwin1
(它是 Cygwin 的核心组件,提供所有 Unix API)缺少一个函数,可能是因为该函数是在编译您拥有的版本之后添加到库中的。
您可以检查程序或 DLL 所需的函数来自(其他)DLL(称为进口)并且 DLL 提供供其他代码调用(称为出口)有多种方式,但最好的方法之一是依赖性遍历器,一款可以在任何 Windows 版本上运行的免费实用程序,它非常有用,因此微软已将其包含在其构建工具的先前版本中。
解决办法可能就是更新您的 Cygwin 安装。相关导出似乎已添加到Cygwin 1.7.32-1,于2014年8月发布。请参阅此帖子:http://cygwin.1069669.n5.nabble.com/ANNOUNCEMENT-Updated-Cygwin-1-7-32-1-td110464.html。当然,您应该使用最新的可用发行版本。