执行 go build 时出现错误:在 %PATH% 中找不到可执行文件 gcc。

153

我使用的是Windows 10。当我尝试构建Chaincode时,它报告了这个错误。

# github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11 
exec: "gcc": executable file not found in %PATH%

我的链码导入:

import (
    "fmt"
    "strconv"

    "github.com/hyperledger/fabric/core/chaincode/shim"
    pb "github.com/hyperledger/fabric/protos/peer"
)

它在Docker中正常运行。


2
那么你有什么问题? - zerkms
go build 命令出现上述 gcc 错误...我该如何解决? - jaswanth
1
需要吗? - jaswanth
当然,是的。 - Volker
3
你的错误信息是 "gcc": executable file not found。这应该是你第一个提示,表明需要但未找到 "gcc"。 - Jonathan Hall
显示剩余2条评论
24个回答

4
对于Ubuntu,对我有效的方法是简单地运行以下命令:
sudo apt install gcc

4

你可以尝试 - 这不是解决方案,而是暂时的解决办法。

cgo_enabled=0 go build 

一旦您安装了gcc,并确保%PATH中有一种方法可以找到它(gcc.exe),这个问题就应该解决了。

同时运行此命令将确保cgo_enabled变量在终端打开的时间内保持不变。这样,每次构建时都不必添加前缀。

export cgo_enabled=0 go build 

3

在Amazon Linux 2上:

  1. 安装Go

    wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz

    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz

    export PATH=$PATH:/usr/local/go/bin

  2. 安装GCC

    sudo yum groupinstall "Development Tools"

我建议使用软件包组,即使可以不这样做,因为groupinstll可以为Amazon Linux和Redhat(以及CentOS)编译软件提供必要的软件包。


2
只需在您的 Dockerfile 中添加以下内容即可。
RUN apk add alpine-sdk

2

在Ubuntu上很容易,但在Windows上需要做以下步骤:

  1. 下载MinGW:http://www.mingw.org/
  2. 安装基本包Gcc-g++(参见这张图片
  3. 添加Windows环境变量的Patch。
  4. 重启并继续使用"go get ..."命令。

2
如果您正在运行Ubuntu,请执行以下操作:
sudo apt-get update
sudo apt-get install build-essential.

如果上述命令无效,请执行以下操作:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe"

主要组件包含应用程序,这些应用程序是自由软件,可以自由再分发,并且得到 Ubuntu 团队的全面支持。星系组件则是自由、开源和 Linux 世界的快照。
然后,在终端中按以下命令安装软件包:
sudo apt-get update
sudo apt-get install build-essential.

更多信息请点击这里:https://itectec.com/ubuntu/ubuntu-problem-installing-build-essential-on-14-04-1-lts-duplicate/

该链接提供了有关在Ubuntu 14.04.1 LTS上安装构建必需品的问题的解决方案。

命令末尾不需要加点号。 - Faiyaz Alam

1

1

如果你不是在跨平台编译或使用cgo,那么通常情况下不需要gcc。但如果确实需要gcc,你可以安装MinGW,它提供了Windows的gcc端口(Cygwin和msys也可以,但我从未测试过)。

编辑:现在从您的错误消息中可以看出,有一个依赖项需要gcc。如果你之前不知道,gcc是一个c/c++编译器,在这种情况下,它可能需要编译由依赖项或子依赖项包含的c源文件。


1

修复使用MSYS2时出现的"exec: "gcc": 在%PATH%中找不到可执行文件"错误的指导:

  • 下载MSYS2。
  • 将MSYS2文件夹放入$PATH中。
  • 启动MSYS2命令行程序。
  • 运行此命令:pacman -S gcc

哪个路径?我将MSYS安装到c:\ tools \ msys64,我认为我应该使用c:\ tools \ msys64 \ usr \ bin来设置我的PATH,对吗? - Robert Snyder

1
在Windows上,您可以通过Scoop安装gcc:
scoop install gcc

Scoop是我首选的方法,因为它不需要管理员权限,并且使用当前用户目录,这似乎是最干净的解决方案。 - Milan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接