首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows下不能通过TDM-GCC通过cgo编译Go应用程序

Windows下不能通过TDM-GCC通过cgo编译Go应用程序
EN

Stack Overflow用户
提问于 2021-01-21 08:00:21
回答 1查看 370关注 0票数 2

我已经安装了TDM-GCC-64发行版,并设置为PATH变量。我仍然无法安装cgo发行版Github.com/mattn/go 3。在阅读问题的最相关答案()之前,我已经安装了。然而,安装tdm发行版并没有什么不同。

在尝试运行应用程序时,会出现以下错误:

代码语言:javascript
复制
c:\go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingwex
/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lmingw32
collect2: error: ld returned 1 exit status
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-21 13:59:02

看来Go安装仍然使用Cygwin发行版来调用gcc,这很可能是因为PATH环境变量设置。尝试在PATH环境变量前面加上通向Mingw64分发bin\目录的路径(这不会持久,因此您需要在同一个命令行窗口中尝试go run ):

代码语言:javascript
复制
set PATH=C:\Path\To\Mingw64\Installation\bin;%PATH%
go run whatever.go

(注意:确保你在那里有\bin。如果您的Mingw64发行版安装在C:\Mingw64中,它将是C:\Mingw64\bin)

如果上面的操作有所帮助,并且您希望永久修复这个问题(并且您不依赖命令行中的Cygwin,因为下面的操作将使用Mingw64命令替换一些命令),请确保在您的PATH环境中,Mingw64变量路径位于Cygwin路径之前。您可以通过以下操作来做到这一点:

  1. 按Windows键+R打开运行对话框
  2. 键入rundll32.exe sysdm.cpl,EditEnvironmentVariables并按Enter键使系统变量对话框
  3. 在名为“用户名的用户变量”的顶部部分,双击变量列为Path的行,以打开“编辑环境变量”对话框。
  4. 现在,检查Mingw64安装/bin目录的行路径是否在之上的行,以及指向Cygwin安装/bin目录的路径所在的行。,如果它在下面,点击它来选择它,并点击,移动到按钮上,按需要将它移到Cygwin path上方。
  5. 完成后,用OK按钮关闭两个对话框

虽然您可以在Cygwin中安装mingw64包,但它很可能与Go工具不兼容,正式文件建议使用明w 64/MSYS作为编译器套件来获得gcc --我强烈建议使用文档中链接的最新发行版。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65823227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档