【问题标题】:Haskell package linker error: can't load .so/.DLL for: clangHaskell 包链接器错误:无法加载 .so/.DLL for:clang
【发布时间】:2011-05-13 12:24:31
【问题描述】:

伙计们,我有一个问题,我想运行一个导入 libClang (import Clang) 的 haskell 脚本,我在之前做了一个 cabal install libClang 并且它可以工作

现在当我创建runhaskell foo.hs 时,我得到:

foo.hs: <command line>: can't load .so/.DLL for: clang (libclang.so: cannot open shared object file: No such file or directory)

我知道我必须将库路径添加到LD_LIBRARY_PATH,所以我添加了一些路径,因为我不确切知道我必须使用哪个(我应该使用 clang/llvm 路径的 lib 路径还是 lib我的 LibClang-9.0.0 所在的 .cabal 目录的路径?)

所以我明白了:

echo $LD_LIBRARY_PATH 
/home/foo/Downloads/clang+llvm-2.9-i686-linux/lib:/home/foo/.cabal/lib

再次运行runhaskell后,仍然存在同样的问题,我该怎么办?

【问题讨论】:

  • 我注意到你在运行 libClang 时遇到了很多问题,这并不奇怪——ffi 绑定窗口可能有点棘手。但是,我建议您不要编写大量 SO 问题,而是查看 freenode 上的#haskell irc 频道,在那里您可以找到一些乐于助人的人来指导您完成整个过程。
  • 我不使用 windows,我使用 mint/fedora core
  • 哦,对不起,把这个问题弄混了。无论如何,同样的建议仍然成立。在具体问题上,您需要将 libclang.so 所在的目录添加到您的 ld_library_path 中。

标签: haskell linker clang cabal


【解决方案1】:

至少在 Arch Linux 上,clang 安装到:

/usr/lib/llvm/libclang.a
/usr/lib/llvm/libclang.so

所以链接器可以找到这个库。您还可以将路径添加到:

$ echo $LDFLAGS 
-L/usr/local/lib -L/home/dons/lib

$ echo $LD_LIBRARY_PATH 
/home/dons/lib

帮助链接器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    相关资源
    最近更新 更多