protoc-gen-gogofaster: program not found or is not executable MacBookPro 搭建golang和protobuf開發(fā)環(huán)境

? ? ? ? 為了編譯公司的ios端的一個sdk,需要在我的mac上下載公司的go項目源碼和搭建相關(guān)開發(fā)環(huán)境。但是在初期就遇到了一些問題。這里記錄一下。

? ? ? ? ?我安裝golang是使用命令行安裝,命令網(wǎng)上搜的,運行g(shù)o env也沒有問題,go get等命令也能正常執(zhí)行。公司源碼項目的編譯是執(zhí)行make 命令,因為目錄下有對應(yīng)的makefile文件。但是編譯后報錯,內(nèi)容如下:

cd proto; protoc --gogofaster_out=. *.proto -I . -I /Users/biaohu/go/pkg/mod/github.com/gogo/protobuf@v1.3.1/protobuf -I /Users/biaohu/go/pkg/mod/github.com/gogo/protobuf@v1.3.1

protoc-gen-gogofaster: 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

--gogofaster_out: protoc-gen-gogofaster: Plugin failed with status code 1.

make: *** [proto/common.pb.go] Error 1

? ? ? ?看意思是????缺少protoc一些項目什么的,在百度和谷歌搜索了很久,并沒有找到符合的問題。在同事幫助下折騰了很久,明明安裝了protoc的一系列工具,包括這個googfasteer,而且在相應(yīng)目錄下也找到了工程,但是最后還是報這個錯誤。我甚至還卸載了go,刪除了關(guān)于go的所有目錄,并按照官網(wǎng)教程重新安裝,但是最后還是報這個錯誤。

? ? ? ?最后解決了問題,在profile文件中配置了golang和protoc的環(huán)境變量,之前并沒有完整的在profile文件中設(shè)置golang的環(huán)境變量,因為看到go env和go get命令是正常的,所以沒有在乎。而protoc的一些環(huán)境變量是依賴于golang的路徑和環(huán)境變量的,所以最好要在profile文件里正確的配置gpolang和protoc的環(huán)境變量。

我是在Users/biaohu/.bash_profile文件里設(shè)置的,這個跟每個人各自的電腦環(huán)境有關(guān)系,添加內(nèi)容如下:

# Golang 環(huán)境變量

#export GOROOT=/usr/local/go

#export GOPATH=/Users/biaohu/go

#export GOBIN=$GOROOT/bin

#export PATH=$PATH:$GOBIN

# Protoc環(huán)境變量

export PROTOBUF=/usr/local/protobuf

export PATH=$PROTOBUF/bin:$PATH

export PATH=$PATH:$GOPATH/bin

? ? ? ?source之后,關(guān)閉終端再打開,重新在項目里make,沒有之前的問題了,屏蔽glolang環(huán)境變量,重新打開終端,make clean,就出現(xiàn)了之前的問題。至此,問題解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容