2016-06-27 9 views
0

저는 하스켈을 처음 접했지만 그 안에 몇 가지 OpenGL 실험을 시도해보고 싶습니다. 나는 성공적으로 OpenGL을, GLUT와 몇 가지 다른 패키지를 설치 한 적이 있지만 나는 GLUtil를 설치하려고 할 때 얻을 다음과 같은 오류 :Cabal : GLUtil을 설치하지 못했습니다.

Building GLUtil-0.9.0.1... 
Failed to install GLUtil-0.9.0.1 
Build log (C:\Users\David\AppData\Roaming\cabal\logs\GLUtil-0.9.0.1.log): 
Building GLUtil-0.9.0.1... 
Preprocessing library GLUtil-0.9.0.1... 
hpp: Couldn't open input file: -includeC:\Users\David\AppData\Local\Temp\ghc3236_0\ghc_2.h 
CallStack (from HasCallStack): 

error, called at src\Hpp\CmdLine.hs:89:0: error: 
    22 in hpp-0.3.0.0-61vdEFyxUJDaeEBxsHCsL:Hpp.CmdLine 
`hpp' failed in phase `C pre-processor'. (Exit code: 1) 
cabal: Leaving directory 'C:\Users\David\AppData\Local\Temp\cabal-tmp-6356\GLUtil-0.9.0.1' 
cabal: Error: some packages failed to install: 
GLUtil-0.9.0.1 failed during the building phase. The exception was: 
ExitFailure 1 

내가 GLUtil 및 종속성의 이전 버전을 사용하여 시도하지만 항상 같은 종료 그리고 결국에는 Haskell Platform을 삭제하고 다시 설치했습니다 (샌드 박스 작업에 대해 알지 못했습니다).

눈에 띄는 한 가지는 사이에 공백이 있어야하는 것처럼 오타가 내게 들리는 것입니다. 그러나이 변경 방법을 모르겠습니다. CmdLine.hs을 찾을 수 없으며 인터페이스 파일 CmdLine.hi 만 결과가 없습니다.

누구에게이 문제를 해결할 수있는 조언이 있습니까?

답변

0

-include과 파일 이름 사이에 공백이 있어야합니다.

https://github.com/erantapaa/GLUtil-0.9.0.1-no-cpp

그것은 나중에 GHC 7.10.x 이상을 사용하는 가정

는 이미 전처리 당신을 위해 작동합니다 GLUtil - 0.9.0.1 버전을 만들었습니다.

  • 파일 JuicyTextures.hs 및 ShaderProgram.hs 그냥 GHC의 이전 버전에 대한 Control.Applicative을 포함하는 CPP를 사용, 그래서 난 그냥 그 라인을 주석 : CPP에 대한 종속성을 제거하는

    단계는 있었다 . LANGUAGEpragma에서 CPP도 제거하십시오.

  • Linear.hs는 CPP를 사용하여 코드를 생성합니다. 넌으로 전처리 된 출력을 생성 할 수

    gcc -E - <Linear.hs> new-Linear.hs 
    

이어서 해쉬으로 시작 라인 (#)를 제거하고 LANGUAGE 그마로부터 CPP 제거. GLUtil.cabal을 주석 /에서

  • 이 줄을 제거 :

    if impl(ghc >= 7.10.1) 
        Build-depends:  hpp >= 0.3 && < 0.4 
        GHC-Options:  -pgmPhpp -optP--cpp -optP-P 
    else 
        Build-tools:  cpphs 
        GHC-Options:  -pgmPcpphs -optP--cpp -optP 
    
+0

이것은 완벽하게 작동, 감사합니다! 내가 가지고있는 유일한 질문은 'include'뒤에 공간이 부족한 이유는 무엇입니까? – Casey

+0

모르겠다. 지금은 디버깅 할 Windows 시스템이 없다. – ErikR

관련 문제