bash:无法执行二进制文件

时间:2013-06-07 18:53:42

标签: c gcc makefile cygwin

我试图在64位Windows上从Cygwin中编译一些C代码,并使用一些参数调用可执行文件。编译顺利进行(Makefile在下面)。但是当我运行可执行文件时,我收到错误cannot execute binary file

快速显示二进制文件确实是为Linux构建的。

  

ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态   GNU / Linux 2.6.24链接(使用共享库),   BuildID [sha1] = 0x7d39e30cb249d2047815de23a9df33fccf91a58f,未剥离

如何更改Makefile以便为Windows编译?


这是Makefile

.SUFFIXES: .c .u
CC= gcc

CFLAGS = -g -Wall -O3 -DHAVE_INLINE -DGSL_RANGE_CHECK_OFF
# LDFLAGS = -lm -lgsl -latlas -lgslcblas
LDFLAGS = -lm -lgsl -lgslcblas
# LDFLAGS = -lm -lgsl -latlas -lcblas
LOBJECTS= a.o b.o c.o 
LSOURCE= a.c b.c c.c 

windows: $(LOBJECTS)
    $(CC) $(LOBJECTS) -o stm $(LDFLAGS)

clean:
    -rm -f *.o

1 个答案:

答案 0 :(得分:4)

cygwin是32位,而不是64位。这是尝试在32位环境中运行64位程序时出现的错误。

编辑: 哦,你不能从cygwin里面编译C for Windows。有适用于Windows的C编译器,我对它们知之甚少。

相关问题