2011-08-29 35 views
4

我有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); 
} 

出于某种原因,一个很简单的GMP程序,它编译好的,但在运行时,它产生

error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory 

什么问题?

+1

'locate libgmp.so.10' yield? –

+0

this:'/usr/local/lib/libgmp.so.10 /usr/local/lib/libgmp.so.10.0.2' – tekknolagi

回答

7

它会出现/usr/local/lib不在/etc/ld.so.conf/etc/ld.so.conf.d/*

如果它只是运行sudo ldconfig(或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 
+1

'ldconfig'像一个魅力一样工作! – tekknolagi