Haskell 无法在macOS Sierra上运行Hakyll:格式错误的mach-o:加载命令大小

Haskell 无法在macOS Sierra上运行Hakyll:格式错误的mach-o:加载命令大小,haskell,macos-sierra,cabal,hakyll,cabal-sandbox,Haskell,Macos Sierra,Cabal,Hakyll,Cabal Sandbox,我可以编译Hakyll,但当我尝试运行它时,会出现链接错误。 首先,我将Hakyll安装在沙箱中: cabal sandbox init cabal install Hakyll 这将成功完成。 然后,我使用hakyll init创建一个普通站点,并将文件向上移动到一个目录: .cabal-sandbox/bin/hakyll-init mysite mv mysite/* . rm -rf mysite 然后我尝试使用cabal exec--runghc site.hs build运行它,

我可以编译Hakyll,但当我尝试运行它时,会出现链接错误。
首先,我将Hakyll安装在沙箱中:

cabal sandbox init
cabal install Hakyll
这将成功完成。 然后,我使用
hakyll init
创建一个普通站点,并将文件向上移动到一个目录:

.cabal-sandbox/bin/hakyll-init mysite
mv mysite/* .
rm -rf mysite
然后我尝试使用
cabal exec--runghc site.hs build运行它,我得到:

site.hs: <command line>: can't load .so/.DLL for: /Users/john/repositories/CP/principles-of-concurrent-programming/Website/.cabal-sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib (dlopen(/Users/john/repositories/CP/principles-of-concurrent-programming/Website/.cabal-sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib, 5): no suitable image found.  Did find:
    /Users/john/repositories/CP/principles-of-concurrent-programming/Website/.cabal-sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib: malformed mach-o: load commands size (32992) > 32768
    /Users/john/repositories/CP/principles-of-concurrent-programming/Website/.cabal-sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib: malformed mach-o: load commands size (32992) > 32768)
site.hs::无法加载.so/.DLL for:/Users/john/repositories/CP/principles of concurrent programming/Website/.cabal sandbox/lib/x8664-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib(dlopen(/Users/john/repositories/CP/principles of concurrent programming/Website/.cabal sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib,5):未找到合适的映像。是否找到:
/Users/john/repositories/CP/principles of concurrent programming/Website/.cabal sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib:格式错误的mach-o:load命令大小(32992)>32768
/Users/john/repositories/CP/principles of concurrent programming/Website/.cabal sandbox/lib/x86_64-osx-ghc-8.2.1/libHSpandoc-citeproc-0.10.5.1-97wWmtk04v65Etcjop52Rs-ghc8.2.1.dylib:格式错误的mach-o:加载命令大小(32992)>32768)
  • site.hs
    的内容是完全标准的。我已将文件上载到
  • GHC 8.2.1,通过自制软件安装。我最初在7.10.3b中遇到了这个问题,并升级了GHC以查看是否有帮助。但没有
  • macOS Sierra 10.12.6

任何帮助都将不胜感激!

尽管这并不是我问题的解决方案,但我还是设法通过堆栈安装Hakyll来解决这个问题。作为记录,以下是我的步骤:

brew安装haskell堆栈
堆栈设置
堆叠安装哈基尔
然后建立网站:

stack exec--runghc site.hs build

尝试通过堆栈安装,看看是否有效。您也可以使用Nix进行安装。darwin的hakyll build在最新版本的nixpkgs中获得了成功。遗憾的是,我无法测试它,因为我没有一台OS X机器可供使用。您可以在处获取Nix,然后尝试:
Nix build-iA Haskell Packages.hakyll-I nixpkgs=https://github.com/NixOS/nixpkgs/archive/6bbc3a0b245ccf392a8ddbce41b372c17409f0e9.tar.gz
你能展示你的网站吗?hs?@mlambrichs我更新了这个问题,指定了一个完全新的网站会发生这种情况,这个网站使用
hakyll init
@Sibi刚刚尝试了stack,它确实工作得很好。我想我会把它作为一个答案发布