gpt4 book ai didi

haskell - 无法编译haskell项目: linking step fails

转载 作者:行者123 更新时间:2023-12-03 12:06:15 25 4
gpt4 key购买 nike

我在我的项目上运行 cabal 时遇到问题。这个项目曾经正常运行,我不完全确定是什么改变破坏了它。我认为这与 GHC 7.6 and OSX Mavericks 之间的问题有关。 (我正在使用 Darin Morrison's homebrew formulae here )。 [ 编辑:澄清一下,这在 Mavericks 的某个时候起作用,所以这个假设可能不成立。]问题似乎出在链接步骤中:

In-place registering chorez-0.1.0.0...
Preprocessing executable 'chorez' for chorez-0.1.0.0...
Linking dist/build/chorez/chorez ...
Undefined symbols for architecture x86_64:
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_AddResponse_con_info", referenced from:
_s5X4_info in libHSchorez-0.1.0.0.a(Commands.o)
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_ErrorResponse_static_info", referenced from:
_chorezzzm0zi1zi0zi0_ChorezzziCommands_route1_closure in libHSchorez-0.1.0.0.a(Commands.o)
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_parseRequest_closure", referenced from:
_r7eV_srt in libHSchorez-0.1.0.0.a(Server.o)
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_parseRequest_info", referenced from:
_s7nh_info in libHSchorez-0.1.0.0.a(Server.o)
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_zdfToJSONResponse1_closure", referenced from:
_r7eS_closure in libHSchorez-0.1.0.0.a(Server.o)
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_zdfToJSONResponse4_closure", referenced from:
_s7ng_info in libHSchorez-0.1.0.0.a(Server.o)
_r7eQ_closure in libHSchorez-0.1.0.0.a(Server.o)
_r7eV_srt in libHSchorez-0.1.0.0.a(Server.o)
"_chorezzzm0zi1zi0zi0_ChorezzziRequest_zdfToJSONResponse5_closure", referenced from:
_s7ng_info in libHSchorez-0.1.0.0.a(Server.o)
_r7eV_srt in libHSchorez-0.1.0.0.a(Server.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

所有这些符号都来自我自己的项目(从名称来看)。我看到的关于此问题的大多数答案都与某个未正确链接的库有关。我怀疑其中一些符号是由 deriveToJSON 生成的。来自 Data.Aeson.TH .我重装了几次都没有解决。有任何想法吗?

最佳答案

这是最终解决的问题。我的 cabal 配置是这样的:

library
exposed-modules:
My.Module1
, My.Module3


executable my-executable
main-is: Main.hs
build-depends:
base >=4.6 && <4.7
, chorez

可执行文件导入的 Main.hs My.Module3 . My.Module3进口私有(private) My.Module2 .其中 My.Module2exposed-modules 下解决了这个问题。我想通了这一点,因为我意识到所有找不到的符号都来自该模块。 cabal repl工作得很好(我手动测试了模块,它们基本上都工作了),但是 cabal run没有。我觉得我应该能够在可执行文件中使用带有私有(private)模块的库,但在这种情况下,我只是忘记将新模块添加到列表中,而且我没有理由将任何模块设为私有(private),所以我准备好了并暂时运行。

关于haskell - 无法编译haskell项目: linking step fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19739395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com