我正在 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
并且命令成功运行。
- 1 回答
- 0 关注
- 172 浏览
添加回答
举报
0/150
提交
取消