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

时间:2017-04-24 05:03:26

标签: windows go build hyperledger-fabric cgo

我正在使用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中正常运行。

21 个答案:

答案 0 :(得分:39)

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

答案 1 :(得分:4)

1)从> https://sourceforge.net/projects/mingw-w64/

安装.exe

1.2)!使用x86_64体系结构

2)在C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\binPATH的{​​{1}}中添加User Variables。对我来说,它有效。

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

答案 2 :(得分:4)

我也遇到过此消息,但就我而言,它缺少 gcc.exe。我使用了 choco 并安装了 mingw,然后就成功了。

详情:

  1. 下载choco
  2. choco install mingw -y
  3. 检查:gcc -v

答案 3 :(得分:3)

如果您正在运行 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 团队的全面支持。 & Universe 组件是免费、开源和 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/

答案 4 :(得分:2)

正确的解释为什么go build不适用于Windows环境中的hyperledger作为其他答案。 为了您的编译目的,只是为了使其工作而不安装任何额外的东西,您可以尝试以下

go build --tags nopkcs11

它对我有用。我希望同样适合你。

答案 5 :(得分:2)

您可以尝试-这不是解决方案,而是临时解决方法

@echo off
cls
cd c:\Program Files\HERRo\Abilitys
life.cfg
break>life.cfg
echo 100 > life.cfg
for /f "delims=" %%x in (life.cfg) do set viata=%%x

set /a lifeF=%life%-2
echo %lifeF% > life.cfg
echo %life%
echo %lifeF%
pause

一旦安装了gcc,并确保%PATH有找到它的方法(gcc.exe),这应该消失了。

也运行此命令将确保只要打开终端,cgo_enabled变量将保持这种方式。这样,您不必在每次构建时都给它加上前缀。

cgo_enabled=0 go build 

答案 6 :(得分:2)

在Ubuntu上非常简单,但是在Windows上需要这样做:

  1. http://www.mingw.org/上下载MinGW
  2. 在基本软件包Gcc-g ++上安装(请参见this image
  3. 在环境中添加Windows变量的补丁。
  4. 重新启动并继续执行“ go get ...”

答案 7 :(得分:1)

修复" exec的说明:“gcc”:%PATH%"中找不到的可执行文件MSYS2错误:

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

答案 8 :(得分:1)

apt-get install build-essential

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

答案 9 :(得分:1)

请在GUI自动显示后安装MINGW。

http://mingw.org/wiki/Getting_Started

答案 10 :(得分:0)

对于 Ubuntu,对我有用的是简单地运行:

sudo apt install gcc

答案 11 :(得分:0)

除非您正在为非Windows平台进行交叉编译或使用cgo,否则不应该使用gcc。 但是,如果你仍然需要gcc,你应该安装MinGW,它为Windows提供了一个gcc端口(Cygwin和msys也应该可以工作,虽然我从未真正测试过这个)。

编辑:我现在从您的错误消息中看到,它是一个需要gcc的依赖项。如果您还不知道这一点,那么gcc就是一个c / c ++编译器,在这种情况下,可能需要编译依赖项或子依赖项所包含的c源文件。

答案 12 :(得分:0)

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

命令:

choco install mingw

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

为我工作。

答案 13 :(得分:0)

我是 Windows 用户,我从以下链接下载了 tdm-gcc(基于 MinGW-w64):

https://jmeubank.github.io/tdm-gcc/

安装后,它创建了一个名为“TDM-GCC-64”的文件夹。

我在 PATH 中添加了“C:\TDM-GCC-64\bin”,它解决了我的问题。

答案 14 :(得分:0)

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

scoop install gcc

答案 15 :(得分:0)

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

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

apk add build-base

答案 16 :(得分:0)

$ go env

检查 CGO_ENABLED ,如果其 1 更改为 0 ,则

$export CGO_ENBLED=0 

答案 17 :(得分:0)

与其他相同,只需安装tdm-gcc,但可以使用其终端“ MinGW”,可以从开始菜单文件夹tdm-gcc中访问它,启动后,浏览至您的项目,然后再次运行

答案 18 :(得分:0)

在窗口安装http://tdm-gcc.tdragon.net/download上,安装后,您需要重设PC。全部

答案 19 :(得分:0)

嗨jaswanth主要问题是你没有注册你的%GO_HOME%\ pkg \ tool \ windows_amd64到你的环境路径。 %GO_HOME%是您第一次安装go的存储库。

答案 20 :(得分:0)

  1. 您需要下载MingGW64
  2. 将MingGW64文件夹放入$ PATH
  3. run go build xxx.go(with cgo library)