Подтвердить что ты не робот

Ошибка при загрузке разделяемых библиотек: libgsl.so.0: невозможно открыть файл общих объектов: нет такого файла или каталога

Я использую gsl. После того, как я скомпилировал мой .cpp файл и запустил его, я столкнулся с ошибкой ниже:

при загрузке разделяемых библиотек: libgsl.so.0: невозможно открыть файл общих объектов: нет такого файла или каталога

Я нашел то же самое, что и эта проблема в: https://groups.google.com/forum/#!topic/cortex_var/6vluX7pP0Sk & Амп; Ошибка Linux при загрузке разделяемых библиотек: невозможно открыть файл общих объектов: нет такого файла или каталога & Амп; http://www.gnu.org/software/gsl/manual/html_node/Shared-Libraries.html

И я сделал то же, что и в приведенных выше ссылках, но ошибка все еще осталась. Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

Чтобы сделать работу, выполните следующие действия.

Начать запущенную оболочку

$LD_LIBRARY_PATH= path to your gsl lib folder inside the gsl installation folder
$export LD_LIBRARY_PATH

теперь запустите исполняемый файл

Он должен работать нормально.

Ответ 2

Я получил ту же ошибку с Krita на Arch Linux. Я сделал символическую ссылку с

ln /usr/lib/libgsl.so /usr/lib/libgsl.so.0

и это исправило его.

Ответ 3

Сначала вам нужно найти файл (libgsl.so.0). Вы можете сделать это, например, с помощью команды find:

find / -Name "libgsl.so.0"

Предположим, файл находится в /usr/local/lib. (Если файл не найден, установите соответствующий пакет или загрузите источник, установите его и установите.) Теперь у вас есть два варианта:

(1) Быстрая и грязная:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

Это добавляет путь библиотеки к переменной среды. Недостатком этого параметра является то, что он действителен только для текущего сеанса. Он не будет работать для других пользователей. Он не будет работать после выключения и повторного включения.

(2) Постоянный:

Просмотрите свой /etc/ld.so.conf. Если /usr/local/lib там не указано, добавьте его. Теперь запустите ldconfig, чтобы обнаружить общий файл объекта и добавить его в какой-то общесистемный индекс.

Ответ 4

По моему опыту fastStructure зависит от gsl 1.6, но не последней версии.

wget http://gnu.mirror.vexxhost.com/gsl/gsl-1.6.tar.gz
tar -zxvf gsl-1.6.tar.gz
cd gsl-1.16
./configure
make
sudo make install

Добавьте эти строки в свой .bashrc файл в своем домашнем каталоге.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export CFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"

затем запустите source ~/.bashrc, чтобы установить эти переменные среды.

Он отлично работает, когда я меняю версию с последней на 1.6.

Ответ 5

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/shg047/software/gsl/lib/

например: to-mr: ошибка при загрузке разделяемых библиотек: libgsl.so.19: невозможно открыть файл общих объектов: нет такого файла или каталога

Ответ 6

Вы пробовали обновлять свою библиотеку? Программа, которую я пыталась запустить, просто нуждалась в более новой версии gsl (у меня было 1.9.5, в то время как она нуждалась в 2.0.0 или новее).

Если вы находитесь на арке, вы можете запустить:

yaourt gsl

и выберите соответствующий.

Ответ 7

Вы можете использовать gsl-config --libs в файле makefile или в командной строке при связывании библиотеки gsl. Просто введите gsl-config, вы можете найти варианты, которые он вам предлагает. Выберите нужные вам параметры, вы найдете процесс компиляции и ссылок намного проще, чем раньше. В результате, когда я набираю gsl-config --libs в моем терминале, я получаю -L/usr/local/lib -lgsl -lgslcblas -lm. Хотя это очень просто, сначала вы должны знать, где установлен gsl. Вы можете добавить каталог в переменную среды PATH или использовать абсолютный путь для выполнения gsl-config.