如何使用Haskell FFI生成静态库?

时间:2017-12-14 12:21:54

标签: c++ linux haskell haskell-ffi

编译今天在C ++中使用的haskell库我使用stack ghc:

stack ghc -- -c -dynamic -fPIC -XHaskell2010 -XOverloadedStrings TestFFI.hs

stack ghc -- --make -dynamic -shared -fPIC -XHaskell2010 -XOverloadedStrings TestFFI.hs -o libTestFFI.so

gcc -fPIC -c test.c -I`stack ghc -- --print-libdir`/include

stack ghc --package Test -- -o libTest.so -shared -dynamic -fPIC TestFFI.o -lHSrts-ghc8.0.2 -lHStimezone-olson-0.1.7-Ib9s8yi63Kn858Rr44Ixqe-ghc8.0.2 test.o

它有效,但它有部署问题,当我在生成的库上使用ldd命令时,所有路径都指向我的HOME文件夹,我想生成一个静态库,带有静态依赖,以避免安装Haskell在用户系统上。

Ps:我将在C ++代码上使用Haskell库,但Haskell FFI仅适用于C。

0 个答案:

没有答案