Я делаю небольшую игру Haskell в Windows, где я бы хотел отвечать каждый раз, когда пользователь нажимает клавишу. Поскольку getChar
ведет себя странно в Windows, я использую FFI для доступа к getch
в conio.h
, как описано . Соответствующий код:
foreign import ccall unsafe "conio.h getch" c_getch :: IO CInt
Это отлично работает, когда я запускаю его в ghci или компилирую его с помощью ghc. Я также хочу попытаться сделать из нее пакет для каббала, поэтому, простираясь от этого вопроса, я включаю в свой файл cabal следующее:
...
executable noughts
Includes: conio.h
Extra-libraries conio
...
Но когда я запускаю cabal configure
, он сообщает мне:
cabal: Missing dependency on a foreign library:
* Missing C library: conio
Это имеет смысл, потому что в моем каталоге платформы haskell в ...\Haskell Platform\2012.4.0.0\mingw
есть файл conio.h
в каталоге include
, но нет другого файла conio
для предоставления объектного кода.
Я делаю это правильно, и если да, то как я могу узнать, какую библиотеку включить в мой файл cabal?