在2台不同的机器上产生不同的cygwin结果:"无法执行二进制文件"

时间:2016-01-21 12:35:54

标签: bash cygwin

我在两台不同的机器上编译.c文件并在cygwin中生成.exe文件: 一个窗口8 64位,另一个窗口7 64位。

每件事情都是类似的:cygwin,编译命令:gcc -std=gnu99 -o .....,环境变量中的PATH等等。但.exe文件在win7机器上执行但在win8机器上,我收到此错误:

cannot execute binary file: Exec format error.

我运行file ./fileName,结果是:

对于win7:

PE32+ executable (console) x86-64, for MS Windows

对于win8:

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID ......, not stripped

1 个答案:

答案 0 :(得分:0)

你可能在两台机器上使用32位cygwin,但在Windows 8上它编译为64位可执行文件。简单地告诉gcc生成带有-m32标志的32位代码,类似于:

gcc -std=gnu99 -m32 -o .....