2013-06-07 4 views
1

Cygwin에서 64 비트 Windows에서 일부 C 코드를 컴파일하고 일부 매개 변수를 사용하여 실행 파일을 호출하려고합니다. 컴파일은 잘 진행됩니다 (Makefile은 아래에 있습니다). 그러나 실행 파일을 실행할 때 오류 cannot execute binary file이 표시됩니다.bash : 바이너리 파일을 실행할 수 없습니다.

실제로 바이너리가 Linux 용으로 제작되었다는 것을 빨리 보여줍니다.

ELF 64 비트 LSB 실행, - 64, 버전 1 (SYSV) 동적 링크 (공유 libs와 용도), GNU/리눅스 2.6.24 들어 BuildID [SHA1 = 0x7d39e30cb249d2047815de23a9df33fccf91a58f, 박리하지

어떻게 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 

답변

4

시그윈 32 비트가 아니라 64 비트 메이크이다. 이것은 32 비트 환경에서 64 비트 프로그램을 실행하려고 할 때 발생하는 오류입니다.

편집 : 아, Cygwin에서 Windows 용 C를 컴파일 할 수 없습니다. Windows 용 C 컴파일러가 있습니다.

+0

아, 그 마지막 비트가 명확 해집니다. – tchakravarty

+1

Windows에서 GCC를 사용하려면 [MinGW] (http://www.mingw.org/)를 시도하십시오. – Kninnug

+0

또는 MinGW 포크 [MinGW-w64] (http://mingw-w64.sourceforge.net/)도 64 비트를 지원합니다. – ollo

관련 문제