我對使用協議緩沖區相當陌生,并且在讓它們與 Go 一起作業時遇到了一些麻煩。我一直在關注一些關于安裝和設定它以創建我的 make 檔案的帖子和視頻教程。到目前為止我嘗試過的是:
使用以下命令安裝:
wget https://github.com/protocolbuffers/protobuf/\ releases/download/v3.9.0/protoc-3.9.0-osx-x86_64.zip
其次是:
unzip protoc-3.9.0-osx-x86_64.zip -d /usr/local/protobuf
我使用 tree 命令查看使用 unzip 命令創建的目錄的內容,如下所示:
/usr/local/protobuf
├── bin
│ └── protoc
├── include
│ └── google
│ └── protobuf
│ ├── any.proto
│ ├── api.proto
│ ├── compiler
│ │ └── plugin.proto
│ ├── descriptor.proto
│ ├── duration.proto
│ ├── empty.proto
│ ├── field_mask.proto
│ ├── source_context.proto
│ ├── struct.proto
│ ├── timestamp.proto
│ ├── type.proto
│ └── wrappers.proto └── readme.txt
然后我嘗試將命令添加到路徑
echo 'export PATH="$PATH:/usr/local/protobuf/bin"' >> ~/.zshenv
這允許我運行protoc --version給我輸出的命令:libprotoc 3.17.3
但是,在撰寫我的 proto 檔案后,我嘗試運行該命令
go get google.golang.org/protobuf/...@v1.25.0
進而:
protoc api/v1/*.proto --go_out=. --go_opt=paths=source_relative --proto_path=.
這會產生錯誤:
protoc-gen-go: 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_out: protoc-gen-go: Plugin failed with status code 1.
我找到了關于此的其他帖子,但沒有任何推薦的路徑有幫助。我正在使用 zsh 而不是 bash 運行 macOS 10.13.6,并且沒有什么可以嘗試的了。如果有人有任何建議,我將不勝感激。
uj5u.com熱心網友回復:
你必須安裝protoc-gen-go:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go get不推薦使用安裝。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/343557.html
下一篇:在TCPconn上多次寫入
