无法执行已编译的程序:执行格式错误

无法执行已编译的程序:执行格式错误

首先,这与 64 位-32 位不匹配、文件扩展名和权限无关。

我在非 Ubuntu 发行版中编译了一个程序 (C++ 11),并使用 FTP 将其上传到 Ubuntu 服务器 (64 位)。在那里我得到了标题中定义的错误:

Cannot execute binary file: Exec format error

奇怪的是,我之前的版本(一个月前编译的,复制到 Windows PC 上)在从 Linux 上传时也无法运行,但如果从 Windows 上传,则可以运行。文件完全相同。

这是 FTP 错误吗?

谢谢您的帮助!

答案1

检查FTP传输模式!

ASCII在不同操作系统上的某些 ftp 客户端/服务器组合中可能无法按预期工作。

所以二进制模式也应该用于二进制文件格式和 Unicode 文本文件,以确认数据的完整性。在此模式下,数据逐位复制,构建完全相同的副本。参考:FTP 上传损坏的 PDF

汽车对于某些客户端来说可能无法很好地工作,因为在 Linux 中可执行程序不必具有特定的扩展。

相关内容