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

exec 不运行来自 Golang 应用程序的命令

exec 不运行来自 Golang 应用程序的命令

Go
慕村225694 2021-11-29 16:36:37
我正在 Debian 环境中运行 Go 应用程序。我的所有开发都在 OSX 上进行并且运行良好,但是我在从 Go 代码在 shell 上运行命令时遇到问题。cmdName := "cwebp"cmdArgs := []string{srcPath, "-o", dstPath}log.Printf("Executing %s : %+v", cmdName, cmdArgs)cmd := exec.Command(cmdName, cmdArgs...)_, err := cmd.StdoutPipe()if err != nil {    log.Printf("Error: %s", err)}err = cmd.Run()if err != nil {    log.Printf("Error: %s", err)}应用程序进程从我的 root 用户运行,当我从 shell 运行它时,该命令工作正常。早些时候,我认为我面临的问题是由于 PATH 环境变量不正确。在运行命令之前打印它,我得到了正确的路径。此外,我尝试使用LookPath并获得了正确的路径/usr/local/bin/cwebp。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

问题不在于命令的执行,而是 Go 无法找到正确的库。在检查命令的输出时,我得到以下信息:

cwebp: error while loading shared libraries: libwebp.so.5: cannot open shared object file: No such file or directory

这让我得出一个方向,那就是 libwebp 的安装肯定有问题。早些时候,我从源代码构建了 libwebp。所以,我通过安装它apt-get install libwebp-dev并且命令成功运行。


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

添加回答

举报

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