我创建一个 person.proto ,我想将此文件编译为 *.go 。我安装了包
go get -u github.com/golang/protobuf/protoc-gen-go
执行以下命令后
.\protoc.exe --go_out=. 人物原型
我收到以下错误
--go_out: protoc-gen-go: 系统找不到指定的文件。
我想使用缓冲区协议版本 2
我该如何修复这个错误?
我的原型文件:
package communication;
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
Run Code Online (Sandbox Code Playgroud) 我无法通过 use获取Golangfmt.scan()中用户的输入。
package main
import "fmt"
func main() {
fmt.Print("Enter text: ")
var input string
e, _ := fmt.Scanln(&input)
fmt.Println(input)
fmt.Println(e)
}
Run Code Online (Sandbox Code Playgroud)
停止调试器后:
代码图像
已err添加到代码中,但没有任何反应。
func main() {
fmt.Print("Enter text: ")
var input string
e, err := fmt.Scanln(&input)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
fmt.Println(input)
fmt.Println(e)
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中添加错误后的图像。下一行中“不可用”是什么(在我的输入值:“51213”之后)
我想在 Windows 10 for Linux (Ubuntu) 中编译我的 Go 代码。
我使用命令:
SET GOOS=linux
SET GOARCH=amd64
go build .\main.go
Run Code Online (Sandbox Code Playgroud)
但编译器会创建一个 .exe 文件。
如何在Linux下交叉编译这段代码?