在我的项目中,我需要动态编写一些go代码并需要测试代码是否有效。所以需要调用“go build”命令使用“os.exec”函数。
当我在像“/data/test/mycode.go”这样的临时目录中编写 go 代码时。我尝试调用“go build”,它们返回一个错误“没有这样的文件或目录”。我怎么能正确地做到这一点?谢谢大家:)
下面是一些代码'
// is not work too
// goPath, err := exec.LookPath("go")
var out, stderr bytes.Buffer
cmd := exec.Command(fmt.Sprintf("%s/go build /data/test/mycode.go", goPath))
cmd.Stdout = &out
cmd.Stderr = &stderr
err = cmd.Run()
PS:但我直接在终端中调用命令“go build /data/test/mycode.go”。它可以工作。
繁星点点滴滴
相关分类