общие библиотеки gmp не найдены - PullRequest
6 голосов
/ 29 августа 2011

У меня очень простая GMP-программа на C (ниже)

#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 Ответ

10 голосов
/ 29 августа 2011

Может показаться, что /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
...