我正在尝试从 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