[英]Haskell stack build including makefile
我正在开发一个通过inline-c
使用一些C绑定的库。 到目前为止,构建过程涉及一个makefile,如下所示,因为我们首先需要从inline-c宏生成C存根,将它们编译为目标代码并动态链接(在这种情况下,将其链接到GHCi)。
step1:
ghc ${SRCDIR}/Internal/InlineC.hs -isrc/
step2:
cc -c ${SRCDIR}/Internal/InlineC.c -o ${LIBDIR}/InlineC_c.o -I${PETSC_DIR_ARCH}/include -I${PETSC_DIR}/include
step3:
ghci ${SRCDIR}/Test.hs ${SRCDIR}/Internal/InlineC.hs ${LIBDIR}/InlineC_c.o ${LIBDIR}/Internal.o -isrc/ -L${PETSC_DIR_ARCH}/lib -lpetsc -lmpich
有没有一种方法可以将上述构建顺序打包成一个stack build
配方?
先感谢您
就在这里。 仔细阅读堆栈指南,并遵循正确的.cabal文件语法。
更准确地说,在类似情况下(HaskellC-> C-> Haskell),请确保.cabal文件具有:
通过在library
节中指定include-dirs
, extra-lib-dirs
和extra-libraries
字段来在范围内绑定库。
c-sources
字段,指向与Haskell文件同名的文件,该文件包含inline-c
内容(即用于包装C函数的所有[C.exp| |]
准引号),但扩展名为.c
。 这将触发警告,因为在构建开始时尚不存在C文件,但它还将调用gcc,它将处理inline-c
产生的C输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.