2013-06-14 2 views
6

Я использую libevent для программы, я скомпилирую свою программу на двух компьютерах A и B, на A выполнение выполнено успешно, но BI получили следующие ошибки:ошибка при загрузке разделяемых библиотек: libevent-1.4.so.2: невозможно открыть файл общих объектов:

error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 

FYI:

а и в с системой Fedora, на а и в, я скачал libevent-1.4.14b-stable.tar.gz, и установить его с помощью конфигурирования// сделать установку.

на A

[[email protected] temp]$ uname -r 
    3.6.10-2.fc16.x86_64 
    [[email protected] temp]$ ls -al /usr/local/lib64 | grep libevent 
    [[email protected] temp]$ ls -al /usr/lib64 | grep libevent 
    [[email protected] temp]$ ls -al /usr/lib | grep libevent 
    lrwxrwxrwx 1 root root  32 May 21 00:25 libevent-1.4.so.2 -> /usr/local/lib/libevent-1.4.so.2 
    [[email protected] temp]$ ls -al /usr/local/lib | grep libevent 
    lrwxrwxrwx 1 root root  21 May 21 00:22 libevent-1.4.so.2 -> libevent-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 435304 May 21 00:22 libevent-1.4.so.2.2.0 
    -rw-r--r-- 1 root root 793178 May 21 00:22 libevent.a 
    lrwxrwxrwx 1 root root  26 May 21 00:22 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 160352 May 21 00:22 libevent_core-1.4.so.2.2.0 
    -rw-r--r-- 1 root root 269580 May 21 00:22 libevent_core.a 
    -rwxr-xr-x 1 root root 988 May 21 00:22 libevent_core.la 
    lrwxrwxrwx 1 root root  26 May 21 00:22 libevent_core.so -> libevent_core-1.4.so.2.2.0 
    lrwxrwxrwx 1 root root  27 May 21 00:22 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 342122 May 21 00:22 libevent_extra-1.4.so.2.2.0 
    -rw-r--r-- 1 root root 631804 May 21 00:22 libevent_extra.a 
    -rwxr-xr-x 1 root root 995 May 21 00:22 libevent_extra.la 
    lrwxrwxrwx 1 root root  27 May 21 00:22 libevent_extra.so -> libevent_extra-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 953 May 21 00:22 libevent.la 
    lrwxrwxrwx 1 root root  21 May 21 00:22 libevent.so -> libevent-1.4.so.2.2.0 

на B:

[email protected] server_agent]# uname -r 
    3.8.5-201.fc18.x86_64 
    [[email protected] server_agent]# ls -al /usr/lib | grep libevent 
    lrwxrwxrwx 1 root root  32 Jun 14 17:09 libevent-1.4.so.2 -> /usr/local/lib/libevent-1.4.so.2 
    [[email protected] server_agent]# ls -al /usr/local/lib | grep libevent 
    lrwxrwxrwx 1 root root  21 Jun 14 16:03 libevent-1.4.so.2 -> libevent-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 435524 Jun 14 16:03 libevent-1.4.so.2.2.0 
    -rw-r--r-- 1 root root 805650 Jun 14 16:03 libevent.a 
    lrwxrwxrwx 1 root root  26 Jun 14 16:03 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 164070 Jun 14 16:03 libevent_core-1.4.so.2.2.0 
    -rw-r--r-- 1 root root 270748 Jun 14 16:03 libevent_core.a 
    -rwxr-xr-x 1 root root 994 Jun 14 16:03 libevent_core.la 
    lrwxrwxrwx 1 root root  26 Jun 14 16:03 libevent_core.so -> libevent_core-1.4.so.2.2.0 
    lrwxrwxrwx 1 root root  27 Jun 14 16:03 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 339502 Jun 14 16:03 libevent_extra-1.4.so.2.2.0 
    -rw-r--r-- 1 root root 642916 Jun 14 16:03 libevent_extra.a 
    -rwxr-xr-x 1 root root 1001 Jun 14 16:03 libevent_extra.la 
    lrwxrwxrwx 1 root root  27 Jun 14 16:03 libevent_extra.so -> libevent_extra-1.4.so.2.2.0 
    -rwxr-xr-x 1 root root 959 Jun 14 16:03 libevent.la 
    lrwxrwxrwx 1 root root  21 Jun 14 16:03 libevent.so -> libevent-1.4.so.2.2.0 
    [[email protected] server_agent]# ls -al /usr/lib64 | grep libevent 
    [[email protected] server_agent]# ls -al /usr/local/lib64 | grep libevent 

почему моя программа получает эту ошибку на B и есть какое-либо решение? спасибо!

ответ

7

Ваша система «A» имеет символическую ссылку от /usr/lib/libevent-1.4.so.2 до /usr/local/lib/libevent-1.4.so.2, но системы «B» нет. Скорее всего, если вы его создадите, тогда все начнет работать.

Команда должна быть следующей.

sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2 

В качестве альтернативы, вы можете добавить /usr/local/lib в свой путь к библиотеке в качестве теста на экспорт LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib как временное решение по системе «B».

+0

Иран команда 'sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2', и я получаю символическую ссылку из/usr/lib/libevent- 1.4.so.2 - /usr/local/lib/libevent-1.4.so.2, проблема все еще существует – misteryes

+0

, но экспортируется LD_LIBRARY_PATH. однако перед экспортом у меня только $ LD_LIBRARY_PATH пусто, почему? – misteryes

+0

Возможно, ваша система B имеет другой путь по умолчанию ld по сравнению с системой A. Это не объясняет, почему симлинк не работает. Диагностирование здесь было бы лучше посмотреть на ваши настройки ld.so.conf, чтобы узнать, какие каталоги проверяются для библиотек. Что касается LD_LIBRARY_PATH, для этого вполне нормально, что я должен быть пустым, я включил ссылку на существующее значение только для того, чтобы предотвратить возможность того, что у вас может быть один набор в вашей конфигурации оболочки. – njustn

 Смежные вопросы

  • Нет связанных вопросов^_^