exec:"gcc":尝试go build时在%PATH%中找不到可执行文件

jas*_*nth 48 windows build go cgo hyperledger-fabric

我正在使用Windows 10.当我尝试构建Chaincode时,它报告了此错误

# github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11 
exec: "gcc": executable file not found in %PATH%
Run Code Online (Sandbox Code Playgroud)

我的链码导入:

import (
    "fmt"
    "strconv"

    "github.com/hyperledger/fabric/core/chaincode/shim"
    pb "github.com/hyperledger/fabric/protos/peer"
)
Run Code Online (Sandbox Code Playgroud)

它在Docker中运行良好.

pet*_*rSO 46

gcc(GNU编译器集合)提供了一个C编译器.在Windows上,安装TDM-GCC.该github.com/miekg/pkcs11软件包使用cgo.Cgo支持创建调用C代码的Go包.

  • tq 它有效,但现在出现不同的错误`.\hyperledger\fabric\vendor\github.com\miekg\pkcs11\pkcs11.go:29:18:致命错误:ltdl.h:没有这样的文件或目录编译终止。` (2认同)
  • 如果您使用 VSCode,安装 TDM-GCC 后,您需要关闭 VSCode 并重新打开它。这是需要的,以便更新 VScode 终端并可以找到 gcc 命令。 (2认同)

Yag*_*nci 15

如果您在 Dockerfile 中使用基于 alpine 的映像

安装build-base它将满足您的要求。

apk add build-base
Run Code Online (Sandbox Code Playgroud)

  • 这个答案是救世主! (2认同)

mah*_*ima 12

apt-get install build-essential
Run Code Online (Sandbox Code Playgroud)

这样就解决了问题。它会安装gcc / g ++编译器和库。

  • 当您在 Ubuntu 中使用 sudo 遇到问题时,请使用此命令 (8认同)
  • OP正在使用Windows! (4认同)

Ama*_*wal 9

$ go env
Run Code Online (Sandbox Code Playgroud)

检查CGO_ENABLED是否为1将其更改为0

$export CGO_ENABLED=0 
Run Code Online (Sandbox Code Playgroud)

  • 你有一个拼写错误,应该是:export CGO_ENABLED=0(带有“A”) (2认同)

Le *_*yen 8

在窗口安装http://tdm-gcc.tdragon.net/download,安装后,您需要重置您的电脑。这一切

  • 您无需重置电脑。只需重新启动您正在使用的任何 shell 即可。 (3认同)

Ale*_*liy 6

1) Install .exe from > https://sourceforge.net/projects/mingw-w64/

1.2) ! use x86_64 architecture

2) Add C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin to PATH in User Variables and in System Variables. For me it works.

!要编辑Path变量,请Windows按键,键入“ path”,选择“ Edit the system environment variables”,单击“ Environment Variables”,PathSystem variables和中找到变量,User variables然后进行编辑。

  • 在我的例子中是“C:\Program Files\Git\mingw64\bin”,因为我安装了 Git 客户端并且它使用 mingw64 (6认同)
  • 这个解释有点神秘,但我设法通过阅读这里所说的内容并“解释”亚历克斯的意图来解决这个问题:应用步骤 1.2 *同时*在步骤 1 中安装应用程序,然后才转到步骤 2。 (2认同)
  • 在 Windows 上,一旦您在系统环境变量中编辑了 PATH,请记住您需要退出/终止您想要使用的任何打开的命令终端,因为它们不会收到 PATH 更新。 (2认同)

Car*_*ard 6

我也遇到了这条消息,但就我而言,它丢失了gcc.exe。我使用了choco并安装了mingw,然后它起作用了。

细节:

  1. 下载巧克力
  2. choco install mingw -y
  3. 查看: gcc -v

  • 也适用于 scoop: `scoop install mingw` (2认同)

Nar*_*tha 5

对于我的情况:操作系统:windows 10

命令:

choco install mingw

如果未安装,请安装 choco:链接: https: //www.liquidweb.com/kb/how-to-install-chocolatey-on-windows/

为我工作。