找不到gmp共享库

时间:2011-08-29 04:13:57

标签: c shared-libraries gmp

我在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 个答案:

答案 0 :(得分:9)

看来/usr/local/lib不在/etc/ld.so.conf/etc/ld.so.conf.d/*

如果只是以sudo ldconfig(或ldconfig以root身份)运行,请重试。

如果不是,请添加它或手动覆盖命令的库路径:

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