Haskell cabal包括静态库

时间:2016-03-16 15:38:37

标签: haskell cabal ffi

我有一个令人尴尬的简单问题。

我正在尝试使用一个存档库(称之为mylib.a)和一个大型的C#项目(使用GHC< MinGW的副本编译)。

从顶级我有:

./project.cabal
./src/...haskell..code...
./cbits/interface.c (simplifies access to `lib.a`)
./include/mylib.h
./lib/mylib.a      <<<<<<<<<<<<<<< not sure where to put this or how to reference it

project.cabal同时具有

c-sources:           cbits/interface.c
include-dirs:        include

extra-lib-dirs似乎想要一个绝对路径(目录)。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

答案来自https://github.com/haskell/cabal/issues/4677

我认为您的存档名称为libmylib.a,然后将其添加到您的cabal文件中

ghc-Options: -pgml gcc "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lmylib" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"

您可能还需要指定gcc选项-L来指定存档路径