当前位置: 首页 > 面试题库 >

在Linux上安装ghc二进制文件(找不到libgmp.so)

段干跃
2023-03-14
问题内容

我正在尝试首次在Linux上安装Haskell平台(我也是一个相当新的Linux用户)。受害者系统是全新的Red
Hat系统。并且这里涉及的所有内容都应该是64位。

平台网站上的指示[1]表示我需要ghc7.0.3来增强功能。他们提供了到ghc-7.0.3通用二进制文件的链接来执行此操作。我拿来跑了

$ ./configure ...
$ make install ...

按照没有事故的指示(它是二进制文件,因此不需要编译)但是,当我尝试运行ghci时,我得到了输出。

$ ghci
GHCi, version 7.0.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... <command line>: can't load .so/.DLL for: gmp (libgmp.so: cannot open shared object file: No such file or directory)

由于某些原因,ghci无法找到libgmp.so。运行ghci最终会调用

  /usr/local/lib/ghc-7.0.3/ghc

一团糟。我通过ldd检查了依赖关系

$ ldd /usr/local/lib/ghc-7.0.3/ghc
    linux-vdso.so.1 =>  (0x00007fffe5f5c000)
    libncursesw.so.5 => /lib64/libncursesw.so.5 (0x0000003ee7000000)
    librt.so.1 => /lib64/librt.so.1 (0x0000003ee5800000)
    libutil.so.1 => /lib64/libutil.so.1 (0x0000003ef3000000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000003ee5000000)
    libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x0000003ee4400000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003ee4c00000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003ee5400000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003ee4800000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003ef3400000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003ee4000000)

它表明它支持libgmp。libgmp位于/ usr / local / lib和/ usr / local /
lib64中。我不确定该如何进一步。有什么建议么?

[1]
http://hackage.haskell.org/platform/linux.html


问题答案:

你要么添加/usr/local/lib和/或/usr/local/lib64$LD_LIBRARY_PATH,或将它们html" target="_blank">添加到/etc/ld.so.conf,或者(因为你已经有了/usr/lib64/libgmp.so.3)添加丢失的符号链接:

cd /usr/lib64
sudo ln -s libgmp.so.3 libgmp.so

(对于/ usr / lib可能也一样)。

请注意,/ usr / lib64 /
libgmp.so.3可能与/usr/local/lib64/libgmp.so的版本不同,请确保ghc实际上可以与前者一起使用。



 类似资料:
  • 问题内容: 我有一个Go二进制文件,试图在Alpine Docker映像上运行。 这对于Docker Go二进制文件很好用。 但是,对于Go二进制文件,我要安装。 我认为这可能与这个答案有关,但是在运行时我并没有得到同样的错误。 在Alpine Linux Docker的路径中找不到这个安装的Go二进制文件的想法吗? 问题答案: RUN mkdir /lib64 && ln -s /lib/lib

  • 问题内容: 我很难在Linux上安装Qt。我在网站上下载了.run文件并安装了Qt。但是,当我尝试使用Qtcreator编译默认的Hello World项目时,得到以下信息: 我能够通过发出以下命令解决问题: 但是,我对解决方案不满意,因为我想使用Qt5,而我下载的库的名称暗示了版本4。有人可以解释发生了什么,并告诉我解决方案是否正确吗?如果没有,我应该怎么做才能在Linux上运行Qt。 附加问题

  • 我正在尝试用Chrome运行硒测试。我正在使用C#。 看起来像是chromedriver。已找到exe,但它可以找到Chrome二进制文件。我设置了通往chrome的路径。自动搜索失败后显式执行。我甚至在最后用“chrome.exe”试过了。我总是得到同样的结果: 在以下位置找不到Chrome二进制文件: C:\用户\Vilem\AppData\本地\谷歌\Chrome\应用程序 仅供参考:我有一

  • 我尝试在eclipse中使用二进制文件安装Tomcat服务器,当我运行cmd并运行启动命令时,cmd打开和关闭,这些写在cmd屏幕上: (startup.bat也尝试过,但行为相同) > 当我运行此命令时: 卡塔琳娜。短跑 java版本“15.0.2”2021-01-19 java(TM)SE运行时环境(构建15.0.2 7-27) java热点(TM)64位服务器虚拟机(构建15.0.2 7-2

  • 本安装说明是提供给那些想在多种环境中安装 Docker 的 hacker 们的。 在进行安装之前,请检查你的 Linux 发行版本是否有打包好的 Docker 安装包。我们已经发布了许多发行版包,这样会节省您很多时间。 检查运行时的依赖关系 如果想要 Docker 正常运行,需要安装以下软件: iptables version 1.4 or later Git version 1.7 or lat

  • 我正在尝试在linux Redhat上安装sonarqube的更新版本。已经传输了配置和属性文件的详细信息,那么当我执行sonar.sh start时,我会得到一个错误: “找不到以下任何二进制文件:/opt/sonar...../opt/sonarq/sonarqube-5.6.6/bin/linux-x86-64/./wrapper(找到但不可执行)。” 我想知道是否有人碰到过这个问题,并且知