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

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

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

Я обнаружил такую ​​же проблему в: https://groups.google.com/forum/& Linux ошибке при загрузке общих библиотек: не могу открыть файл общего объекта: нет такого файла или каталога& http://www.gnu.org/software/gsl/manual/html_node/Shared-Libraries.html

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

8 ответов

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

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

Начать Borne Shell

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

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

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

По моему опыту, fastStructure зависит от версии 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.

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

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

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

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

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

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

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

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

yaourt gsl

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

Мне было нужно 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. Установка Анаконды
  2. искал libgsl.so.19 и нашел его в ~/anaconda3/lib
  3. бежать LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/anaconda3/lib (лучше всего добавить его в ~ /.basrc)
Другие вопросы по тегам