ошибка при загрузке разделяемых библиотек: 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.

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


person Abdolvahed    schedule 06.03.2014    source источник
comment
Где находится libgsl.so.0?   -  person DmitryARN    schedule 06.03.2014
comment
Он расположен в нужном месте. Я переустановил gsl с терминала, и указанной выше ошибки сейчас нет. Но у меня ошибка сегментации, и я должен ее исправить. Спасибо, в любом случае   -  person Abdolvahed    schedule 08.03.2014
comment
Спасибо за предоставленную ссылку. Я нашел gnu.org/software/gsl/manual/html_node/ Shared-Libraries.html мне пригодится. Вы решили свою проблему?   -  person an offer can't refuse    schedule 19.07.2014


Ответы (8)


Чтобы заставить его работать, сделайте следующие шаги

Запустить Borne Shell

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

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

Должно работать нормально.

person Inquisitive    schedule 26.07.2014

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

sudo 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, чтобы обнаружить файл общих объектов и добавить его в какой-нибудь общесистемный индекс.

person ManuelAtWork    schedule 24.05.2016

По моему опыту, 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.

person ginkgo    schedule 27.05.2016

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

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

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

person ahathoor    schedule 13.04.2016
comment
В моем случае libgsl.so находился в / usr / local / lib, поэтому ln /usr/local/lib/libgsl.so /usr/local/lib/libgsl.so.0 решил мою проблему. - person Kibo; 08.12.2016

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

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

person Shicheng Guo    schedule 19.03.2016

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

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

yaourt gsl

и выберите подходящий.

person user6206320    schedule 14.04.2016

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

person zmwang    schedule 06.06.2017

Мне понадобилось libgsl.so.19:

/snap/inkscape/current/bin/inkscape: error while loading shared libraries: libgsl.so.19: cannot open shared object file: No such file or directory

Я решил это с помощью:

  1. Установка Anaconda
  2. искал libgsl.so.19 и нашел его в ~ / anaconda3 / lib
  3. запустить LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/anaconda3/lib (лучше всего добавить его в ~ / .basrc)
person JoKalliauer    schedule 05.11.2018