Open2

Golangエラーつまずき集

まつまるまつまる

状況

https://zenn.dev/hsaki/books/golang-grpc-starting/viewer/codegenerate#コードの生成

上記記事を見ながら進めていた時に
protocでコード生成したいけど、ずっと以下エラーで詰まってる状況。

❯ protoc --go_out=../pkg/grpc --go_opt=paths=source_relative \
        --go-grpc_out=../pkg/grpc --go-grpc_opt=paths=source_relative \
        hello.proto

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.

原因

protoc-gen-goが認識されていなかった模様

❯ protoc-gen-go --version
zsh: command not found: protoc-gen-go

解決策

$ export PATH="$PATH:$(go env GOPATH)/bin"

以下参考
https://zenn.dev/mikankitten/articles/0437fa6fb7de82#go用のプラグイン

まつまるまつまる

状況

この記事みながら模写してる最中で起きたこと
https://zenn.dev/a5chin/articles/first_api_go

terminal
go mod tidy

を実行した時にgo.modのrequire部分のmoduleが自動で消えちゃう

go.mod
require (
	github.com/gin-gonic/gin v1.7.7
	github.com/jinzhu/gorm v1.9.16
	github.com/mattn/go-sqlite3 v1.14.12
)

原因

Root配下で使用していないmoduleは自動で消されちゃう仕様みたいなので、後回しにすればOK。
今回のケースならmain.goとdb_model.goに実装部分追加してgo mod tidyすれば問題なく動いきました。