【发布时间】:2017-02-07 16:15:30
【问题描述】:
我在 C 中创建了一个测试应用程序,如下所示:
#include<stdio.h>
int main(void){
printf("Hello World!\n");
return 0;
}
我在运行 OS X Yosemite 的 MacBook Air 上通过以下命令进行编译:
$ cc foo.c -o foo
然后我将“foo”二进制文件上传到我的 CentOS VPS,CHMOD 755,然后尝试通过以下命令执行:
$ ./foo
这将返回以下结果:
-bash: ./foo: cannot execute binary file
我还尝试使用 -m32 进行编译,以防出现 64/32 位冲突。产生了相同的结果。
为什么 CentOS 不会执行二进制文件?
【问题讨论】:
-
foo是否有执行权限? -
@Raptor 是的,正如我所说,权限设置为 755。
-
你是在什么机器上构建的?
-
@JohnZwinck 我的 MacBook Air,运行 OS X Yosemite。
-
尝试执行
file foo看看输出是什么