Reputation: 1807
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.
Upvotes: 157
Views: 272083
Reputation: 145
For Ubuntu, what worked for me was to simply run:
sudo apt install gcc
Upvotes: 4
Reputation: 223
On Windows install https://jmeubank.github.io/tdm-gcc/, that is all.
Upvotes: 18
Reputation: 1555
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
Upvotes: 4
Reputation: 9407
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.
Upvotes: 3
Reputation: 444
$ go env
check CGO_ENABLED if its 1 change it to 0 by
$export CGO_ENABLED=0
Upvotes: 8
Reputation: 771
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.
Upvotes: 5
Reputation: 2057
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.
Upvotes: 0
Reputation: 7978
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:
choco install mingw -y
gcc -v
Upvotes: 29
Reputation: 39
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/
Upvotes: 3
Reputation: 20618
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
Upvotes: 15
Reputation: 186
on Ubuntu its very easy but on windows need to do it:
Upvotes: 2
Reputation: 27
Kindly install the MINGW after GUI will automatically take.
http://mingw.org/wiki/Getting_Started
Upvotes: 1
Reputation: 1
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
Upvotes: 0
Reputation: 1975
If you are running Ubuntu do:
apt-get install build-essential
This solved the problem. It installs the gcc/g++ compilers and libraries.
Upvotes: 154
Reputation: 986
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
Upvotes: 4
Reputation: 851
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.
! 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.
Upvotes: 19
Reputation: 2286
Instruction to fix the "exec: “gcc”: executable file not found in %PATH%" error with MSYS2:
pacman -S gcc
.Upvotes: 1
Reputation: 11
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.
Upvotes: 0
Reputation: 136
Upvotes: 0
Reputation: 961
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.
Upvotes: 4
Reputation: 11
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.
Upvotes: 1
Reputation: 166569
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.
Upvotes: 151