为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
繁星淼淼 2022-07-11 16:59:45
我需要编译 proto 文件并动态生成 pb 文件。我在 Makefile 中有我的 protoc 命令。我打算从 golang init() 函数中触发它。如何从我的 golang 代码中调用这个 Makefile?尝试寻找解决方案,但他们都建议我如何以相反的方式实现这一目标。谢谢。
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

作为 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())

}


查看完整回答
反对 回复 2022-07-11
?
偶然的你

TA贡献1841条经验 获得超3个赞

您应该使用 go:generate 语法:

package main
//go:generate protoc bla bla bla

当您运行“go build”命令时,它将运行代码中以 //go:generate 为前缀的所有内容

https://golang.org/pkg/cmd/go/internal/generate/


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信