要求堆栈将额外的命令行参数传递给c2hs

时间:2017-08-16 06:04:40

标签: haskell haskell-stack c2hs

我使用c2hs来简化将Haskell绑定编写到C / C ++库的过程。我最近也开始使用stack来管理我的Haskell项目。

要使用c2hs,我需要在我的Haskell源代码中有一行#include "myheader.h";这里myheader.h是我的C / C ++库的接口文件。

我今天发现,不是将此#include行嵌入到.chs源文件中,而是可以在调用c2hs时传递头文件的位置,如下所示

c2hs /<path-to-my-header>/myheader.h Foo.chs

值得庆幸的是,堆栈会自动检测文件何时具有.chs扩展名,然后在其上调用c2hs。我的问题是,如何在调用c2hs时告诉stack传递这个额外的命令行参数(即头文件的位置)? 我需要对.cabal或stack.yaml文件进行哪些更改?

1 个答案:

答案 0 :(得分:1)

在cabal文件中的库或可执行部分(取决于您的项目)下的include-dirs字段中添加您的位置应该可以使其正常工作。