2011-08-29 33 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