我在Debian 10中安装了Go 1.13.4,使用brew,package golang (之前我已经删除了通过apt安装的golang-1.11 )。它遵循brew info输出。
$ brew info golang
go: stable 1.13.4 (bottled), HEAD
Open source programming language to build simple/reliable/efficient software
https://golang.org
/home/linuxbrew/.linuxbrew/Cellar/go/1.13.4 (9,271 files, 408.1MB) *
Poured from bottle on 2019-12-07 at 14:31:52
From: https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/go.rb
==> Requirements
Required: macOS is required ✔
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 1,571 (30 days), 8,628 (90 days), 31,650 (365 days)
install-on-request: 784 (30 days), 4,096 (90 days), 13,267 (365 days)
build-error: 0 (30 days)当我尝试使用代码调用native OS functions的包执行native OS functions时,GO编译器告诉它找不到gcc-5命令,如下所示。
$ go build
# _/home/giacomo/src/goproc/process
exec: "gcc-5": executable file not found in $PATH因此,我已经安装了最新的GCC (9.2.1),来自testing (deb http://ftp.us.debian.org/debian testing main contrib non-free)存储库,并创建了一个指向/usr/bin/x86_64-linux-gnu-gcc-9的符号链接。
这解决了问题。但问题是:这是解决问题的正确方法吗?还是有合适的地方配置高朗使用的GCC?
任何澄清非常感谢!
发布于 2019-12-07 16:45:12
(并不是一个真正的答案,因为你所问的几乎不是一个真正的问题-见下文。)
你的情况有几点似乎不对,让我们把它们都考虑一下。
首先要考虑的是,"Go“意味着两件事:一种具有特定语法和语义的语言,以及一种实现它的语言。
Go语言至少有两个成熟的实现:一个是从Go's 主址-and获得的“引用”,另一个是GCC的一部分。股票当代Debian发行版(Debian 10,"Buster")都是这样的:golang-go是前者,gccgo是后者。
正如您所看到的,首先还不清楚您安装了哪一个。
需要考虑的第二件事是,参考实现(由于我忘记的原因被其最初的开发人员称为gc )是完全独立的(甚至是自举),并且不使用任何C编译器( GCC或其他编译器)来构建Go代码。相反,gccgo自然使用GCC工具链的其他部分来构建Go代码。
尽管如此,Go代码还是有一个名为cgo的特殊子系统,它可以用来将Go代码与用C编写的代码(以及与遵循can的编译库)进行接口。在构建一个使用cgo的程序时,两个Go套件都至少依赖一个C编译器(而且可能是链接器--我不确定这一点),默认情况下,gc希望能够使用与GCC兼容的编译器,当然,gccgo也使用GCC的C编译器。
现在让我们再回顾一下。
正如你现在应该看到的那样,你至少应该为你整理几件事情:
brew安装的东西真的是你想要得到的吗?cgo第四件需要考虑的事情是,为什么你决定使用一种虚构的方法来帮助Mac用户弥补他们平台上缺少的软件包管理系统来处理Debian中的软件包。
Debian已经发布了;如果您对它的打包版本(1.11)不满意,那么只从https://golang.org/dl获取最新和最优秀的二进制包,解锁并使用它看起来就更简单了。
另一件需要考虑的事情是,由于版本1.5Go是用Go编写的,所以它是用Go编写的,所以如果您想拥有最新的上游版本,只需安装apt install golang-go --安装一些Go版本--然后使用它构建最新版本,如下所示:
/home/user/golang/bin中列出了$PATH。请注意,建筑围棋是闪电般的速度:在一台带有SSD的笔记本电脑上,它在一分钟内就能从冷启动。
发布于 2020-07-08 13:11:22
因为看起来您已经用linuxbrew安装了go,所以也可以安装gcc-5。
brew install gcc@5这为我彻底解决了这个问题。
发布于 2021-08-03 16:34:05
这个问题是用linuxbrew语言写的。要修复运行:
go env -w CC=gcc CXX="g++"这使用gcc/g++系统,而不是linuxbrew的系统。
https://stackoverflow.com/questions/59227456
复制相似问题