如何从 golang 代码运行/调用 Makefile?

我需要编译 proto 文件并动态生成 pb 文件。我在 Makefile 中有我的 protoc 命令。我打算从 golang init() 函数中触发它。

如何从我的 golang 代码中调用这个 Makefile?尝试寻找解决方案,但他们都建议我如何以相反的方式实现这一目标。

谢谢。


繁星淼淼
浏览 146回答 2
2回答

杨魅力

作为 Muffin Top 提到的内容的延续,我使用以下代码实现了这一点:import (    "bytes"    "fmt"    "log"    "os/exec")func init() {    e := exec.Command("make", "all")    var out bytes.Buffer    e.Stdout = &out    err := e.Run()    if err != nil {        log.Fatal(err)    }    fmt.Printf("Output: %q\n", out.String())}

偶然的你

您应该使用 go:generate 语法:package main //go:generate protoc bla bla bla当您运行“go build”命令时,它将运行代码中以 //go:generate 为前缀的所有内容https://golang.org/pkg/cmd/go/internal/generate/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go