【发布时间】:2017-10-05 02:15:06
【问题描述】:
我正在关注一些 FFI 教程和示例(here 和 here),我想知道使用堆栈时应该改变什么?
在示例中,源 C 文件使用 gcc -c -o termops.o termops.c 编译为目标文件,并使用 ghc --make -main-is FfiEx -o ffi_ex FfiEx.hs termops.o 包含在 gcc 编译中。使用堆栈如何实现等效?
【问题讨论】:
-
堆栈不是这个的正确组件 - Cabal 是。 Stack 是一个工具,可帮助您确定如何解决您的依赖关系,而 Cabal 描述如何构建您的项目。
-
我从来没有真正直接使用过 cabal。我直接去使用堆栈。不能堆栈做阴谋集团可以做的一切吗?
-
不完全。 Stack 旨在补充 Cabal,而不是取代它。在内部,Stack 相当依赖 Cabal。
-
所以他们无法运行
stack build并使用 FFI 进行编译? -
我没这么说。但是让 Stack 构建 FFI 项目的工作发生在
.cabal文件中,而不是.stack文件中。我已经发布了一个示例项目。
标签: c haskell ffi haskell-stack