繁体   English   中英

exec未从Golang应用程序运行命令

[英]exec not running command from Golang application

我在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用户运行的,从外壳程序运行时,该命令可以正常运行。

早些时候,我认为由于不正确的PATH环境变量,我遇到了这个问题。 在运行命令之前进行打印时,我得到了正确的路径。 此外,我尝试使用LookPath并获得了正确的路径/usr/local/bin/cwebp

问题不在于命令的执行,而是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了该命令,并成功运行了该命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM