1

我正在使用通过 Homebrew 安装的 Haskell Platform 2011.2.0.1。我已经建立了一个已定义相关依赖项的 cabalized 项目。可执行文件只是打印出传递给它的参数。程序编译和链接正确,但是当程序...

主要.hs:

  main = do
    args <- getArgs
    putStrLn "Here are your arguments!:"
    forM_ args putStrLn

...运行,我得到...

痕迹:

$ cabal configure
Resolving dependencies...
Configuring foo-0.1...

$ cabal build
Preprocessing executables for foo-0.1...
Preprocessing test suites for foo-0.1...
Building foo-0.1...

$ dist/build/foobar/foobar some arguments
foobar: mkTextEncoding: failed (Unknown error: 0)
FAIL: 1

我的 PATH 变量的相关部分内容如下:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/texbin:/usr/X11/bin

我认为这是一个与libiconv. 有任何想法吗?谢谢!

4

1 回答 1

1

感谢 Daniel 和 John 的投入,我找到了解决自己问题的方法。

就我而言,是由于与图书馆foobar: mkTextEncoding: failed (Unknown error: 0) FAIL: 1的不可靠联系引起的。gd

通过检查二进制文件使用的库可以看到这个问题。

$ otool dist/build/foobar/foobar -L
foobar:
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
    libgd.dylib (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/lib/libpng12.0.dylib (compatibility version 47.0.0, current version 47.0.0)
    /usr/local/lib/libjpeg.8.dylib (compatibility version 12.0.0, current version 12.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
    /usr/local/lib/libfontconfig.1.dylib (compatibility version 6.0.0, current version 6.4.0)
    /usr/local/lib/libfreetype.6.dylib (compatibility version 15.0.0, current version 15.0.0)
    /usr/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.2.0)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)

奇怪的线当然向我们展示了罪魁祸首:

    libgd.dylib (compatibility version 0.0.0, current version 0.0.0)

版本和位置看起来很奇怪。删除对 的依赖gd使我的程序再次工作。但是,我还没有设法libgd在我的 Mac 上工作。这个问题超出了这个问题的范围。

于 2011-12-03T00:49:58.113 回答