我创建了非常简单的应用程序,用于输出一些文本。
我的开发环境是适用于Windows的Windows + Docker。我创建了ubuntu容器,并在Windows中为ubuntu构建我的应用程序
set GOARCH=amd64
set GOOS=linux
go build -o "myapp"
然后我将'myapp'文件复制到共享文件夹,并在我的容器的共享文件夹中查看。 我尝试在容器内运行它但是出现错误
为什么我不能运行它?是不正确构建还是我尝试以某种错误的方式执行它?
在Windows中,当我运行我的exe文件时,我有这个输出,我想在Ubuntu中使用相同的东西。
UPDATE 按照建议我尝试./myapp并且存在Exec格式错误
答案 0 :(得分:1)
在ubuntu和其他Linux系统上,只有myapp
会尝试从myapp
环境变量中找到PATH
。要专门查看当前目录中的可执行文件,您需要使用:
./myapp
或使用完整路径:
/__shared/myapp
更新:为此,您的文件需要可执行。您可以使用ls -l
验证它:
ls -l
-rwxrwxr-x 1 user user 0 Feb 9 09:45 myapp
如果你没有看到至少一个' x'在第一列中,您需要运行:
chmod +x myapp
有关此主题的更多信息,请参阅understanding-linux-file-permissions。
更新:错误cannot execute binary file: Exec format error'
可能来自:
uname -a
和file myapp
的输出