【问题标题】:ld: library not found for -lgmpxxld: 找不到 -lgmpxx 的库
【发布时间】:2017-03-31 10:28:36
【问题描述】:

我是 C++ 新手,并试图在这里运行代码 https://github.com/chussong/virasoro。安装 GMP 并执行“make”后,出现以下错误。我现在不知道如何修复它。有人能告诉我我应该调查什么吗?我的 gcc 有什么问题吗?或者如何在我的 Mac 上重新安装所有内容以解决任何可能的问题?谢谢!

【问题讨论】:

  • 您是如何“安装 GMP”的? GMPXX 是 GMP 的一个可选部分,它可以单独打包,也可以在某个地方需要一些选项以便安装。

标签: linker g++ clang gmp


【解决方案1】:

正如上面评论中提到的,上述错误的一个可能原因是您没有安装libgmpxx,这是 GMP 使用的补充库,用于围绕基本 GMP 库提供 C++ 类包装器。如果您从库开发人员 (https://gmplib.org/) 提供的源代码构建 GMP,则可以通过在运行 configure 时指定 --enable-cxx 选项来完成此操作。如果您从某个存储库安装了打包版本,则应该查看该存储库以查看那里是否也提供 libgmpxx

【讨论】:

  • 您好,谢谢您的回答。实际上,我已经下载了gmplib.org 并完成了./configure --enable-cxx。您还有其他想法出了什么问题?
  • g++ 没有找到库。您可以通过在用于构建 virasoro 的 makefile 中的 LDFLAGS 行中添加 -L 选项来解决此问题,其中 是包含 libgmpxx 库文件的目录。 (当您通过键入“make”构建 gmp 时,它会将库放在构建目录的 .libs 子目录中。)对于其余的编译,您可能还需要添加 -I 选项,其中 现在是包含 gmp 的 .h 文件的目录(这可能是 gmp 的构建目录。)
  • 我遇到了同样的问题。这些库是在 /usr/local/lib/ 中构建和安装的,但链接器似乎只在 (/usr)/lib 中搜索。我想知道推荐的选项是什么:将它们移动到 /usr/lib(我有一个旧的 libgmp 但没有 libgmpxx),在 /usr/local/lib 中的文件上建立一个符号链接,将 /usr/loc/lib 添加到链接器的路径(gmp 是唯一的东西),更改安装路径(是否应该在构建之前向其他人推荐[取决于系统/配置])...?
猜你喜欢
  • 2014-12-13
  • 2021-10-24
  • 1970-01-01
  • 2011-09-26
  • 2018-03-10
  • 2017-08-08
  • 2017-07-13
  • 2020-08-10
  • 1970-01-01
相关资源
最近更新 更多