다른 사람의 코드로 해킹하고 있습니다. 이 파일에는 .h
파일 (코드가없고 매크로 만)에 정의 된 매크로가 여러 개 있으며 이러한 매크로는 여러 Haskell 파일에 사용됩니다. 내가 누락 된 부분은이 편집을 허용하는 단계입니다. Haskell 파일을 컴파일하려고 할 때 누락되거나 정의되지 않은 매크로에 오류가 발생합니다. 헤더 파일에 정의 된 매크로를 사용할 GHC 옵션이 있습니까? 나는 GHCi와 똑같이하려고 노력하고있다.CPP 매크로 내보내기
.h
파일의 이름을 .hs
으로 변경하고 매크로를 사용하는 파일로 가져 오려고했지만 매크로를 내보낼 수 없으며 자동으로 내 보내지 않았습니다.
GHC (i)로 컴파일 할 때 어떻게 이들 매크로를 사용할 수 있습니까?
는 GHC 6.6 문서에 두 페이지를 참조하십시오 http://www.haskell.org/ghc/docs/6.6/html/users_guide/options-phases.html#options-C -compiler 및 http://www.haskell.org/ghc/docs/6.6/html/users_guide/options-phases.html#options-C-compiler를 참조하십시오. 그러나 이것은 최신 GHC 버전에서 사용되지 않습니다 : http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/ffi-ghc.html#glasgow-foreign-headers –
FFI 전에, 그래서 그 옵션을 보았습니다. 그러나 전체 FFI를 사용하려고하지는 않습니다. 여기에 몇 가지 매크로가 있습니다. 또한, 헤더 파일을 포함하여 deprectation 메시지가 나타내는 것처럼 도움이되지 않는 것 같습니다. – crockeea
당신의 haskell 파일의 맨 위에 CPP pragma를 추가하고 haskell 파일에'#include foo.h' 줄을 추가하십시오. C 전처리 기가 매크로를 확장합니다. – vivian