英文:
exec: "gcc": executable file not found in %PATH% when trying go build
问题
我正在使用Windows 10。当我尝试构建Chaincode时,报告了以下错误:
# github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11
exec: "gcc": 在%PATH%中找不到可执行文件
我的Chaincode导入了以下包:
import (
"fmt"
"strconv"
"github.com/hyperledger/fabric/core/chaincode/shim"
pb "github.com/hyperledger/fabric/protos/peer"
)
在Docker中它可以正常运行。
英文:
I am using Windows 10. When I tried to build Chaincode it reported this error
# github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11
exec: "gcc": executable file not found in %PATH%
My chaincode imports:
import (
"fmt"
"strconv"
"github.com/hyperledger/fabric/core/chaincode/shim"
pb "github.com/hyperledger/fabric/protos/peer"
)
It's running fine in Docker.
答案1
得分: 145
[gcc](GNU编译器套件)提供了一个C编译器。在Windows上,安装[TDM-GCC]。github.com/miekg/pkcs11
包使用[cgo]。Cgo使得可以创建调用C代码的Go包。
英文:
gcc (the GNU Compiler Collection) provides a C compiler. On Windows, install TDM-GCC. The github.com/miekg/pkcs11
package uses cgo. Cgo enables the creation of Go packages that call C code.
答案2
得分: 142
如果你正在运行Ubuntu操作系统,可以执行以下命令来解决问题:
apt-get install build-essential
这将安装gcc/g++编译器和相关的库文件。
英文:
If you are running Ubuntu do:
apt-get install build-essential
This solved the problem. It installs the gcc/g++ compilers and libraries.
答案3
得分: 26
我也遇到了这个问题,但在我的情况下,缺少了gcc.exe
。我使用choco安装了mingw
,然后问题就解决了。
具体步骤如下:
- 下载choco
- 运行
choco install mingw -y
- 检查:
gcc -v
英文:
I also encountered this message, but in my case, it was missing gcc.exe
. I used choco and installed mingw
, and then it worked.
details:
- download choco
choco install mingw -y
- check:
gcc -v
答案4
得分: 19
1)从以下网址下载.exe
文件:https://sourceforge.net/projects/mingw-w64/
1.2)请使用x86_64
架构。
2)将C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
添加到用户变量
和系统变量
的PATH
中。对我来说有效。
!要编辑Path
变量,请按下Windows
键,输入'path',选择'编辑系统环境变量',点击'环境变量',在系统变量
和用户变量
中找到Path
变量,然后进行编辑。
英文:
- Install
.exe
from > https://sourceforge.net/projects/mingw-w64/
1.2) ! use x86_64
architecture
- Add
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
toPATH
inUser Variables
and inSystem Variables
. For me it works.
! To edit Path
variable press Windows
key, type 'path', choose 'Edit the system environment variables', click 'Environment Variables', find Path
variable in System variables
and in User variables
then edit.
答案5
得分: 16
在Windows上安装https://jmeubank.github.io/tdm-gcc/,就是这样。
英文:
On Windows install https://jmeubank.github.io/tdm-gcc/, that is all.
答案6
得分: 15
如果您在Dockerfile中使用的是基于Alpine的镜像
安装build-base
以满足您的要求。
apk add build-base
英文:
If you are using an alpine based image with your Dockerfile
Install build-base
which will be met with your requirements.
apk add build-base
答案7
得分: 9
你好!以下是翻译好的内容:
$ go env
检查 **CGO_ENABLED**,如果它的值是 **1**,请将其改为 **0**,方法如下:
$ export CGO_ENABLED=0
英文:
$ go env
check CGO_ENABLED if its 1 change it to 0 by
$export CGO_ENABLED=0
答案8
得分: 5
对于我的情况:
操作系统:Windows 10
命令:
choco install mingw
如果未安装,请安装choco:
链接:https://www.liquidweb.com/kb/how-to-install-chocolatey-on-windows/
对我有效。
英文:
For my case :
os: windows 10
command:
choco install mingw
install choco if not installed:
Link: https://www.liquidweb.com/kb/how-to-install-chocolatey-on-windows/
worked for me.
答案9
得分: 4
在Windows环境下,Hyperledger无法正常工作的原因有其他答案中给出的适当解释。
为了编译目的,只需使其正常工作而无需安装任何额外的内容,您可以尝试以下操作:
go build --tags nopkcs11
这对我有效。希望对您也有效。
英文:
The proper explanations why go build does not work for hyperledger in Windows environment are given as other answers.
For your compilation purposes, just to make it work without installing anything extra, you can try the following
go build --tags nopkcs11
It worked for me. I hope same works for you too.
答案10
得分: 4
你可以尝试以下方法作为临时解决方案:
cgo_enabled=0 go build
安装gcc后,确保%PATH环境变量中可以找到gcc.exe,这样问题应该就会解决。
另外,运行以下命令可以确保cgo_enabled变量在终端打开期间保持不变。这样你就不需要每次构建时都加上前缀了。
export cgo_enabled=0 go build
英文:
You can try - this is not a solution but a temp workaround
cgo_enabled=0 go build
Once you install gcc - and make sure %PATH has a way to find it (gcc.exe) - this should go away.
Also running this one will ensure the cgo_enabled variable will stay this way as long as terminal is open. That way you don't have to prefix it each time you do a build.
export cgo_enabled=0 go build
答案11
得分: 4
对于Ubuntu,对我来说有效的方法是简单地运行:
sudo apt install gcc
英文:
For Ubuntu, what worked for me was to simply run:
sudo apt install gcc
答案12
得分: 4
刚刚按照以下说明进行操作,问题解决了:
https://code.visualstudio.com/docs/cpp/config-mingw
它要求通过MSYS2安装Mingw-w64。
重要的命令是 pacman -S --needed base-devel mingw-w64-x86_64-toolchain
,然后将 C:\msys64\mingw64\bin
添加到 PATH
。
谢谢。
英文:
just followed instructions from following and it solve my issue
https://code.visualstudio.com/docs/cpp/config-mingw
it ask to install Mingw-w64 via MSYS2
important command is pacman -S --needed base-devel mingw-w64-x86_64-toolchain
then add C:\msys64\mingw64\bin
to PATH
thanks
答案13
得分: 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"
我建议使用软件包组进行安装,尽管可以不使用它,因为groupinstall会为您提供在Amazon Linux和Redhat、CentOS上编译软件所需的必要软件包。
英文:
On Amazon Linux 2:
-
Install 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
-
Install gcc
sudo yum groupinstall "Development Tools"
I recommend using the package group, even though it can be done without it, because groupinstall gives you the necessary packages to compile software on Amazon Linux and Redhat, CentOS for that matter.
答案14
得分: 2
在Ubuntu上很容易,但在Windows上需要这样做:
- 在http://www.mingw.org/ 上下载MinGW。
- 安装基本包Gcc-g++(参见此图像)。
- 添加Windows环境变量的路径。
- 重新启动并继续执行"go get ..."。
英文:
on Ubuntu its very easy but on windows need to do it:
- download MinGW on http://www.mingw.org/
- install on basic package Gcc-g++ (see this image)
- add on environment Patch of windows variables.
- restart and continue with "go get ..."
答案15
得分: 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/
英文:
If you are running Ubuntu do:
sudo apt-get update
sudo apt-get install build-essential.
If the above commands do not work do:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe"
The main component contains applications that are free software, can be freely redistributed and are fully supported by the Ubuntu team. & The universe component is a snapshot of the free, open-source, and Linux world.
Then install package by following command in terminal:
sudo apt-get update
sudo apt-get install build-essential.
For more info click here: https://itectec.com/ubuntu/ubuntu-problem-installing-build-essential-on-14-04-1-lts-duplicate/
答案16
得分: 2
只需将以下内容添加到您的 Dockerfile
中:
RUN apk add alpine-sdk
英文:
Just add this to your Dockerfile
RUN apk add alpine-sdk
答案17
得分: 1
gcc在大多数情况下是不必要的,除非你在为非Windows平台进行交叉编译,或者使用cgo。然而,如果你确实需要gcc,你应该安装MinGW,它提供了Windows平台的gcc版本(Cygwin和msys也可以工作,尽管我从未亲自测试过)。
编辑:我现在从你的错误消息中看到,这是一个需要gcc的依赖项。如果你还不知道,gcc是一个C/C++编译器,在这种情况下,它可能需要编译由依赖项或子依赖项包含的C源文件。
英文:
gcc should not be necessary, unless you are cross compiling for a non-windows platform, or use cgo.
If you still need gcc, however, you should install MinGW, which provides a gcc port for Windows (Cygwin and msys should also work, although I have never actually tested this).
Edit: I see from your error message now, that it is a dependency that requires gcc. If you didn't already know this, gcc is a c/c++ compiler, and in this case it is probably needed to compile c source files included by a dependency or sub-dependency.
答案18
得分: 1
修复“exec: “gcc”: 在%PATH%中找不到可执行文件”错误的MSYS2指令:
- 下载MSYS2。
- 将MSYS2文件夹添加到你的$PATH环境变量中。
- 启动MSYS2命令行程序。
- 运行以下指令:
pacman -S gcc
。
英文:
Instruction to fix the "exec: “gcc”: executable file not found in %PATH%" error with MSYS2:
- Download MSYS2.
- Put MSYS2 folder into your $PATH.
- Start the MSYS2 command line program.
- Run this command:
pacman -S gcc
.
答案19
得分: 1
请安装MINGW,安装完成后GUI将会自动启动。
你可以在以下链接中获取MINGW的安装指南:
http://mingw.org/wiki/Getting_Started
英文:
Kindly install the MINGW after GUI will automatically take.
答案20
得分: 1
在Windows上,你可以通过Scoop安装gcc:
scoop install gcc
英文:
On Windows, you can install gcc by Scoop:
scoop install gcc
答案21
得分: 0
你需要下载MingGW64。
将MingGW64文件夹放入你的$PATH路径中。
运行go build xxx.go(带有cgo库)。
英文:
- you need to download MingGW64
- put MingGW64 folder into your $PATH
- run go build xxx.go (with cgo library)
答案22
得分: 0
你好,主要问题是你还没有将%GO_HOME%\pkg\tool\windows_amd64注册到你的环境路径中。
%GO_HOME%是你第一次安装go时的存储库。
英文:
Hi jaswanth the main problem is that you haven't register your %GO_HOME%\pkg\tool\windows_amd64 to yuour Environment Path.
%GO_HOME% is the repository where you install your go at the first time.
答案23
得分: 0
与其他相同,只需安装tdm-gcc,但您可以使用其终端“MinGW”,您可以从开始菜单文件夹tdm-gcc访问它,在启动后,浏览到您的项目,并再次运行它。
英文:
same as other, just install tdm-gcc, but you can use its terminal, "MinGW", you can access it from start menu folder tdm-gcc, after start, browse to your project, and run it again
答案24
得分: 0
我是你的中文翻译助手,以下是翻译好的内容:
我是一个Windows用户,我从下面的链接下载了tdm-gcc(基于MinGW-w64):
https://jmeubank.github.io/tdm-gcc/
安装完成后,它创建了一个名为"TDM-GCC-64"的文件夹。
我将"C:\TDM-GCC-64\bin"添加到了我的PATH环境变量中,这解决了我的问题。
英文:
I'm a Windows user and I downloaded tdm-gcc (MinGW-w64 based) from the link below:
https://jmeubank.github.io/tdm-gcc/
After installation, it made a folder named "TDM-GCC-64".
I added "C:\TDM-GCC-64\bin" to my PATH, And it fixed my problem.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论