Я пытаюсь скомпилировать код C из Cygwin в 64-разрядной Windows и вызвать исполняемый файл, используя некоторые параметры. Компиляция проходит через fine (Makefile ниже). Но когда я запускаю исполняемый файл, я получаю сообщение об ошибке cannot execute binary file
.bash: невозможно выполнить двоичный файл
Быстро показывает, что в действительности бинарный файл создан для Linux.
ELF 64-битный исполняемый LSB, x86-64, версия 1 (SYSV), динамически связаны (использует общие LIBS), для 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
А, этот последний бит дает понять. – tchakravarty
Попробуйте [MinGW] (http://www.mingw.org/) для использования GCC под Windows. – Kninnug
Или вилка MinGW [MinGW-w64] (http://mingw-w64.sourceforge.net/), которая также поддерживает 64 бит. – ollo