为了账号安全,请及时绑定邮箱和手机立即绑定

无法通过 Windows 上的 TDM-GCC 使用 cgo 编译 Go 应用程序

无法通过 Windows 上的 TDM-GCC 使用 cgo 编译 Go 应用程序

Go
长风秋雁 2022-08-01 17:15:18
我已经安装了TDM-GCC-64发行版,并设置为PATH变量。我仍然无法 github.com/mattn/go-sqlite3 安装 cgo 发行版。在我阅读最相关的问题答案(This)之前,我已经安装了CygWin。但是,安装 tdm 分配没有任何区别。我在尝试运行应用程序时收到以下错误: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 -lmingw32collect2: error: ld returned 1 exit status
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

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

set PATH=C:\Path\To\Mingw64\Installation\bin;%PATH%
go run whatever.go

(注意:确保你有。如果您的Mingw64发行版已安装在其中,则\binC:\Mingw64C:\Mingw64\bin)

如果上述内容有帮助,并且您想要永久解决此问题(并且您不依赖于命令行中的Cygwin工具,因为下面会将某些命令替换为Mingw64命令),请确保在您的环境中,Mingw64的变量路径位于Cygwin路径之前。您可以通过执行以下操作来执行此操作:PATH

  1. 按 Windows 键 + R 以显示“运行”对话框

  2. 键入并按 Enter 键以显示“系统变量”对话框rundll32.exe sysdm.cpl,EditEnvironmentVariables

  3. 在名为“用户名的用户变量”的顶部部分,双击“变量”列所在的行以显示“编辑环境变量”对话框Path

  4. 现在检查一下,Mingw64安装/bin目录的路径是否在Cygwin安装/bin目录路径所在的行上方如果它在下面,请单击它以选择它,然后单击“向上移动”按钮,根据需要多次将其带到Cygwin路径上方

  5. 完成后,使用“确定”按钮关闭两个对话框

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


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 414 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信