CentOS:无法执行在Mac OS X上编译的二进制文件

时间:2016-09-29 11:06:45

标签: c linux binary centos vps

我在C中创建了一个测试应用程序,如下所示:

#include<stdio.h>
int main(void){
    printf("Hello World!\n");
    return 0;
}

我在MacBook Air上通过以下命令编译,运行OS X Yosemite:

$ cc foo.c -o foo

然后我上传&#34; foo&#34;二进制到我的CentOS VPS,CHMOD 755,然后尝试通过以下命令执行:

$ ./foo

返回以下结果:

-bash: ./foo: cannot execute binary file

我还尝试使用-m32进行编译,以防它是64/32位冲突。产生了同样的结果。

为什么CentOS不会执行二进制文件?

1 个答案:

答案 0 :(得分:4)

您在Mac OS X上构建了一个可执行文件,并尝试在Linux上运行它。这将永远不会起作用,因为这两个操作系统不兼容。解决这个问题的最简单方法是在Linux机器上构建程序,也许是在Mac上运行的虚拟机。一般来说,描述这种情况的短语是“交叉编译”。