繁体   English   中英

Haskell堆栈构建(包括makefile)

[英]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-dirsextra-lib-dirsextra-libraries字段来在范围内绑定库。

  • c-sources字段,指向与Haskell文件同名的文件,该文件包含inline-c内容(即用于包装C函数的所有[C.exp| |]准引号),但扩展名为.c 这将触发警告,因为在构建开始时尚不存在C文件,但它还将调用gcc,它将处理inline-c产生的C输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM