问题描述
有关Haskell FFI的在线教程均使用本地定义的C文件给出了简单的示例,然后将其编译并与Haskell二进制文件链接。我将如何做更实质的事情,例如将Haskell二进制文件与蓝牙库链接?
想象一下,我在系统上安装了BlueZ和必需的开发人员库。在C语言中,我只需将标志-lbluetooth
传递给GCC,它将按预期工作。我可以将这个标志传递给我的集团文件中的Haskell,并希望我的FFI导入工作吗?
解决方法
您的阴谋文件中将包含以下内容:
library
exposed-modules: YourBluetoothBinding
build-depends: {- Haskell dependencies -}
c-sources: {- your own C files that may be needed -}
pkgconfig-depends: bluez
includes: bluetooth/bluetooth.h
extra-libraries: bluetooth
我不确定pkgconfig-depends
在Windows上是否有作用。