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

从 golang os.exec 调用“go build”命令

从 golang os.exec 调用“go build”命令

Go
30秒到达战场 2021-09-13 15:22:07
在我的项目中,我需要动态编写一些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.Buffercmd := exec.Command(fmt.Sprintf("%s/go build /data/test/mycode.go", goPath))cmd.Stdout = &outcmd.Stderr = &stderrerr = cmd.Run()PS:但我直接在终端中调用命令“go build /data/test/mycode.go”。它可以工作。
查看完整描述

1 回答

?
繁星点点滴滴

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

fmt.Sprintf("%s/go build /data/test/mycode.go", goPath) string 返回内部除以空格的单个字符串,但作为单个字符串。

os/exec.Command(name string, arg ...string) *Cmd 期待一些论点。它本身不会分割一个字符串。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号