首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >走1.13: gcc-5没有在路上

走1.13: gcc-5没有在路上
EN

Stack Overflow用户
提问于 2019-12-07 15:22:01
回答 5查看 6.4K关注 0票数 9

我在Debian 10中安装了Go 1.13.4,使用brew,package golang (之前我已经删除了通过apt安装的golang-1.11 )。它遵循brew info输出。

代码语言:javascript
复制
$ 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命令,如下所示。

代码语言:javascript
复制
$ 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

任何澄清非常感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 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编译器。

现在让我们再回顾一下。

正如你现在应该看到的那样,你至少应该为你整理几件事情:

  • 你说的Go的什么实现(和/或想要安装)?
  • 你通过brew安装的东西真的是你想要得到的吗?
  • 您要构建的代码是否使用cgo

第四件需要考虑的事情是,为什么你决定使用一种虚构的方法来帮助Mac用户弥补他们平台上缺少的软件包管理系统来处理Debian中的软件包。

Debian已经发布了;如果您对它的打包版本(1.11)不满意,那么只从https://golang.org/dl获取最新和最优秀的二进制包,解锁并使用它看起来就更简单了。

另一件需要考虑的事情是,由于版本1.5Go是用Go编写的,所以它是用Go编写的,所以如果您想拥有最新的上游版本,只需安装apt install golang-go --安装一些Go版本--然后使用它构建最新版本,如下所示:

  1. 获取Go源代码: $ cd ~$ mkdir golang $ git克隆https://github.com/golang/go golang
  2. 选择要构建的版本: $ cd golang $ git签出go1.13.5 $ cd src $ ./make.bash
  3. 然后确保在您的/home/user/golang/bin中列出了$PATH

请注意,建筑围棋是闪电般的速度:在一台带有SSD的笔记本电脑上,它在一分钟内就能从冷启动。

票数 3
EN

Stack Overflow用户

发布于 2020-07-08 13:11:22

因为看起来您已经用linuxbrew安装了go,所以也可以安装gcc-5

代码语言:javascript
复制
brew install gcc@5

这为我彻底解决了这个问题。

票数 21
EN

Stack Overflow用户

发布于 2021-08-03 16:34:05

这个问题是用linuxbrew语言写的。要修复运行:

代码语言:javascript
复制
go env -w CC=gcc CXX="g++"

这使用gcc/g++系统,而不是linuxbrew的系统。

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

https://stackoverflow.com/questions/59227456

复制
相关文章

相似问题

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