protoc-gen-go-grpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
not solve the problem for :
ubuntu so please give me the answers
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
and
sudo apt install golang-goprotobuf-dev
and
sudo apt-get protobuf-compiler
You should be able to:
go install github.com/golang/protobuf/protoc-gen-go#latest
Then:
which protoc-gen-go
/${GOPATH}/bin/protoc-gen-go
If you haven't already, execute the following:
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc#latest
This will install protoc-gen-go-grpc executable to the location indicated by $GOBIN (default if not set is $GOPATH/bin)
$ ls $(go env GOPATH)/bin | grep 'protoc-gen-grpc-gateway'
protoc-gen-grpc-gateway
The protoc compiler is looking to run this executable, so you'll need to make sure it is resolvable via your $PATH environment variable.
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.
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.
If you are running Ubuntu do:
apt-get install build-essential
This solved the problem. It installs the gcc/g++ compilers and libraries.
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
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.
On Windows install http://tdm-gcc.tdragon.net/download, that is all.
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
$ go env
check CGO_ENABLED if its 1 change it to 0 by
$export CGO_ENABLED=0
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.
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.
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
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
For Ubuntu, what worked for me was to simply run:
sudo apt install gcc
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.
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 ..."
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/
Just add this to your Dockerfile
RUN apk add alpine-sdk
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.
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.
Kindly install the MINGW after GUI will automatically take.
http://mingw.org/wiki/Getting_Started
On Windows, you can install gcc by Scoop:
scoop install gcc
you need to download MingGW64
put MingGW64 folder into your $PATH
run go build xxx.go (with cgo library)
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.
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
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.
I'm trying to build grpc from source on Windows 2012 Server edition. I downloaded and installed Python 3.5 from the Python website and installed the entire MinGW package as well as git along with git bash. Following the instructions for building from source:
$ git clone https://github.com/grpc/grpc.git
$ cd grpc
$ git submodule update --init
$ make
$ [sudo] make install
I get the aforementioned error after executing make. Here's the shell output for your perusal.
PS C:\Users\thunderboltsid\grpc> make
[MAKE] Generating /c/Users/thunderboltsid/grpc/libs/opt/pkgconfig/grpc.pc
[MAKE] Generating /c/Users/thunderboltsid/grpc/libs/opt/pkgconfig/grpc_unsecure.pc
[MAKE] Generating cache.mk
[C] Compiling third_party/zlib/adler32.c
make.exe": no_c_compiler: Command not found
make.exe": *** [/c/Users/thunderboltsid/grpc/objs/opt/third_party/zlib/adler32.o] Error 127
I really can't understand what is this error supposed to be. Tried googling but that didn't help. Any input will be appreciated.
you may need run apt-get install which
install build-base in your system, example:
apt-get install build-base
You may simply have no C compiler installed, not even gcc. If that's the reason then installing gcc resolves the issue:
apt get install gcc
I am working on Windows 10. I want to run a "make build" in MINGW64 but following error comes up:
$ make build
bash: make: command not found
I want to build Glide for Golang
I tried following:
$ sudo yum install build-essential
bash: sudo: command not found
As well as:
$ yum install build-essential
bash: yum: command not found
And:
$ apt-cyg build-essential
bash: apt-cyg: command not found
How can I "work-around" this problem?
Go to ezwinports, https://sourceforge.net/projects/ezwinports/files/
Download make-4.2.1-without-guile-w32-bin.zip (get the version
without guile)
Extract zip
Copy the contents to C:\ProgramFiles\Git\mingw64\ merging the folders, but do NOT overwrite/replace any exisiting files.
You can also use Chocolatey.
Having it installed, just run:
choco install make
When it finishes, it is installed and available in Git for Bash / MinGW.
You have to install mingw-get and after that you can run mingw-get install msys-make to have the command make available.
Here is a link for what you want http://www.mingw.org/wiki/getting_started
We can't use the 'make' command on windows and we don't get it preinstalled with MINGW. So to use it, you need to download it first. The steps are as follows-
Go to https://sourceforge.net/projects/mingw/postdownload and download it.
After the installation is over, go and check if bin folder is present in the directory of MINGW .
If everything works well till now, change the environment variables- go to settings of your laptop and type Environment variables. Go to it's section and click on 'environment variables' at the end.
On the section where 'path' is written, add a new file - the location of the bin file and save.
Install make by typing the following on mingw command line :
mingw-get install mingw32-make
Now make is installed. To use it in command line just write "mingw32-make" in place of "make".
Try using cmake itself.
In the build directory, run:
cmake --build .
Go to downloads of jmeubank.github.io/tdm/gcc : https://jmeubank.github.io/tdm-gcc/download/
Download 64+32-bit MinGW-w64 edition.
Run the .exe file.
Click on Remove if you have tdm-gcc already.
Then Click on Create to install tdm-gcc.
Complete the installation.
Add path to environment variable if not added automatically.
Now run mingw32-make on your terminal / command prompt.
Hope this works
You have to install make first. Run any of the below commands and it will work.
pip install make
OR
conda install make
I followed the steps on https://forums.openshift.com/ffmpeg but when performing make install I got this error:
INSTALL doc/ffmpeg.1
INSTALL doc/ffprobe.1
INSTALL doc/ffserver.1
INSTALL doc/ffmpeg-all.1
INSTALL doc/ffprobe-all.1
INSTALL doc/ffserver-all.1
INSTALL doc/ffmpeg-utils.1
INSTALL doc/ffmpeg-scaler.1
INSTALL doc/ffmpeg-resampler.1
INSTALL doc/ffmpeg-codecs.1
INSTALL doc/ffmpeg-bitstream-filters.1
INSTALL doc/ffmpeg-formats.1
INSTALL doc/ffmpeg-protocols.1
INSTALL doc/ffmpeg-devices.1
INSTALL doc/ffmpeg-filters.1
INSTALL doc/libavutil.3
INSTALL doc/libswscale.3
INSTALL doc/libswresample.3
INSTALL doc/libavcodec.3
INSTALL doc/libavformat.3
INSTALL doc/libavdevice.3
INSTALL doc/libavfilter.3
/var/lib/openshift//python//bin/install: line 10: version: unbound variable
make: *** [install-man] Error 1
And It's the install file(which gives error):
#!/bin/bash -eu
source $OPENSHIFT_CARTRIDGE_SDK_BASH
case "$1" in
-v|--version)
version="$2"
esac
echo "$version" > ${OPENSHIFT_PYTHON_DIR}env/OPENSHIFT_PYTHON_VERSION
mkdir -p ${OPENSHIFT_PYTHON_DIR}template
# Call the version specific install script
exec ${OPENSHIFT_PYTHON_DIR}usr/versions/${version}/bin/install $version
So what is the problem ? And how can I solve it?
thanks
/var/lib/openshift//python//bin/install is the bin/install script from the OpenShift Python cartridge, so I'm very confused why it's getting called from make install.
Are you using a Python cartridge? I suspect make could be incorrectly resolving the standard install command to your Python cartridge due to a bad PATH variable. In your OpenShift environment try
which install
and if you get anything other than /usr/bin/install then that's the problem. If you get the correct path here, then maybe the PATH when make calls install is messed up. Try to print the PATH at that point in the Makefile to see what's going on.
When i tried to compile FFMPEG from Source Code, I faced insufficient space issue in the gear. However, using the binary from the url "https://www.johnvansickle.com/ffmpeg/" works in openshift without any issue.
I am using the git based binary of 3.1.3 version and its working fine for me.
Hope this helps...