【问题标题】:Stack/Docker/IHaskell weird behaviourStack/Docker/IHaskell 奇怪的行为
【发布时间】:2015-08-17 15:40:19
【问题描述】:

我有一个包含一堆 *.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 快照,如果它有某种相关性的话。

发生了什么事?

【问题讨论】:

    标签: haskell docker cabal jupyter ihaskell


    【解决方案1】:

    最近对堆栈 ghci 进行了很多改进,这仍然主要是一项正在进行的工作。我建议测试 stack master,如果问题仍然存在,请打开 Github 问题。

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 2018-02-13
      • 1970-01-01
      • 2021-09-30
      相关资源
      最近更新 更多