2010-07-23 3 views
3

helloworld.hs를 컴파일하고 helloworld.o 파일을 얻었습니다. ./helloworld를 시도했지만 작동하지 않았으므로 helloworld를 실행하는 올바른 방법은 무엇입니까? 내가 Cygwin에서 사용하고 , 난 그냥 적어 $ GHC --make helloworld.hs 내가 helloworld.hi, helloworld.exe.manifest, helloworld.o 파일을 가져, 내가 뭘 모르는 다음에해야 할 일이 무엇입니까?cygwin에서 haskell 프로그램을 실행하는 방법

+1

'.o'는 실행 가능하지 않습니다. 어떻게 컴파일 했습니까? – kennytm

+0

ghc --make helloworld.hs – Rn2dy

+0

'helloworld.hs'에 무엇이 있습니까? –

답변

1

사용하는 컴파일러와 같이 컴파일 방법에 대해 지정하지 않았기 때문에 추측 할 수 있습니다. ghc에서 .o (객체) 파일을 가져 오는 일반적인 방법은 -c 스위치를 사용하는 것입니다. 매뉴얼에서 말하는 것처럼 "연결 안됨"을 의미합니다. 이 니모닉은 " 만 컴파일"입니다. 연결하지 않고 프로그램의 일부만 가지고 있으며 실행할 수 없습니다. 정확하게 링크 할 필요가있는 것은 특정 오브젝트 파일에 따라 달라지며 컴파일러가 링커를 실행하게하면 기본적으로 채워집니다. 별도로 연결하는 것은 더 복잡합니다.

3

Cygwin ghc와 Windows ghc 중 어느 것을 사용했는지에 따라 a.out (이전의 전통적 이름) 또는 helloworld.exe이 있습니다. a.out이있는 경우 Windows에서 실행하려면 이름을 .exe으로 바꿔야합니다.

ghc에게 실행 파일을 호출하는 방법을 쉽게 알릴 수 있습니다 : ghc -o helloworld.exe --make helloworld.hs. 그런데 ghc --help으로

당신을 말한 것입니다 :

은과 같이 컴파일러를 컴파일하고 완전한 하스켈 프로그램을 연결, 실행하려면 :
모듈 홈페이지 메인라는 이름의 파일에 ghc-6.8.2 --make Main
. hs (또는 Main.lhs)를 현재 디렉토리에 저장하십시오. 프로그램의 다른 모듈은 자동으로 찾아서 컴파일되며 연결된 프로그램은 Windows의 경우 a.out' (or Main.exe '파일에 저장됩니다.

관련 문제