我有一个包,里面有一堆*.c和*.cpp文件,列在*.cabal文件的c-sources字段中。我需要将它包含在IHaskell和其他一些包的项目中。一切都运行得很好,构建起来也没有任何问题。stack exec ghci运行良好,我可以导入模块并执行任何代码。不过,stack ghci抛出了一些奇怪的错误,如下所示:
In file included from <command-line>:10:0:
/...blabla.../.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/autogen/cabal_macros.h:157:0:
note: this is the location of the previous definition
#define CURRENT_PACKAGE_KEY "blabla"
^我包里的stack ghci抱怨从它的C代码中导出的符号。另一件奇怪的事情是,符号依赖于配置中exposed-modules的顺序,所以如果我将*.hs模块放在其他模块之上,错误就会消失,但如果我有两个*.hs文件从相同的*.c文件导入,它将无法工作!stack exec jupyter -- console --kernel haskell启动,但如果我试图运行包中的一些代码,它会立即抛出unknown symbol错误,尽管总是相同的。
我有一个基于fpco/stack-build的docker镜像,它只安装jupyter和其他必要的东西。我使用lts-3.0快照,如果它相关的话。
怎么一回事?
发布于 2015-08-18 18:22:13
最近对堆栈ghci进行了很多改进,这主要还在进行中。我建议测试堆栈主控,如果问题仍然存在,打开一个Github问题。
https://stackoverflow.com/questions/32054409
复制相似问题