GMP共享库未找到。

6

我有一个非常简单的C语言GMP程序(如下)

#include <stdio.h>
#include <gmp.h>

int main() {
    mpf_t a, b, inter;
    mpf_init(a);
    mpf_init(b);
    mpf_init(inter);
    mpf_set_d(a, 3.0);
    mpf_set_d(b, 5.0);
    mpf_add(inter, a, b);
    gmp_printf("%F+%F=%F\n", a, b, inter);
}

由于某些原因,它编译没有问题,但运行时会出现问题。
error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory

有什么问题吗?


1
locate libgmp.so.10的结果是什么? - Steve-o
这是:/usr/local/lib/libgmp.so.10 /usr/local/lib/libgmp.so.10.0.2 - tekknolagi
1个回答

12

看起来 /usr/local/lib 没有在 /etc/ld.so.conf/etc/ld.so.conf.d/* 中。

如果是,只需运行 sudo ldconfig(或以 root 权限运行的 ldconfig)再尝试一次。

如果不是,则要么将其添加,要么手动覆盖命令的库路径:

LD_LIBRARY_PATH=/usr/local/lib ./myprogram

看起来你的配置有些奇怪,请检查 /usr/local/lib/libgmp.so.10 是否是一个指向 /usr/local/lib/libgmp.so.10.0.2 的链接,例如:

$ ls -ltr /usr/lib/libgmp.so.3
lrwxrwxrwx 1 root root 15 2011-07-27 12:15 /usr/lib/libgmp.so.3 -> libgmp.so.3.5.2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接