加载共享库时出错:libgsl.so.0:无法打开共享对象文件:没有这样的文件或目录

时间:2014-03-06 11:09:35

标签: c++ gsl

我使用gsl。 编译完.cpp文件并运行后,我面临以下错误:

加载共享库时出现

错误:libgsl.so.0:无法打开共享对象文件:没有这样的文件或目录

我在以下问题中发现了同样的问题: https://groups.google.com/forum/#!topic/cortex_var/6vluX7pP0Sk &安培; Linux error while loading shared libraries: cannot open shared object file: No such file or directory &安培; http://www.gnu.org/software/gsl/manual/html_node/Shared-Libraries.html

我已经按照上面的链接写了但是错误仍然存​​在。 任何人都可以帮助我吗?

8 个答案:

答案 0 :(得分:11)

要使其正常工作,请执行以下步骤

启动Borne Shell

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

现在运行您的可执行文件

它应该可以正常工作。

答案 1 :(得分:5)

我在Arch Linux上遇到与Krita相同的错误。我用

创建了一个符号链接
ln /usr/lib/libgsl.so /usr/lib/libgsl.so.0

并修复了它。

答案 2 :(得分:5)

首先,您需要找到该文件(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来检测共享对象文件并将其添加到某个系统范围的索引中。

答案 3 :(得分:5)

根据我的经验, 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版本时,它可以正常工作。

答案 4 :(得分:1)

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

如:to-mr:加载共享库时出错:libgsl.so.19:无法打开共享对象文件:没有这样的文件或目录

答案 5 :(得分:1)

您是否尝试过更新图书馆?我试图运行的程序只需要一个更新版本的gsl(我有1.9.5而它需要2.0.0或更新版本。)

如果你在拱门,你可以运行:

yaourt gsl

并选择合适的一个。

答案 6 :(得分:1)

您可以在makefile中使用gsl-config --libs,也可以在链接gsl库时在命令行中使用gsl-config。只需输入gsl-config --libs,您就可以找到它为您提供的选项。选择您需要的选项,您会发现编译和链接过程比以前容易得多。因此,当我在终端中输入-L/usr/local/lib -lgsl -lgslcblas -lm时,我会得到PATH。虽然它非常简单,但首先您应该知道gsl的安装位置。您可以将目录添加到gsl-config环境变量,或使用绝对路径执行.container { height: 100px; width: 100%; background-color: green; } .rise { display: inline-block; height: 0; width: 0; background-color: red; } .container:hover .rise { animation: example 0.5s ease 1s forwards; -webkit-animation: example 0.5s ease 1s forwards; -o-animation: example 0.5s ease 1s forwards; -moz-animation: example 0.5s ease 1s forwards; } .container:hover .rise:nth-child(2) { animation: example 0.5s ease 2s forwards; -webkit-animation: example 0.5s ease 2s forwards; -o-animation: example 0.5s ease 2s forwards; -moz-animation: example 0.5s ease 2s forwards; } .container:hover .rise:nth-child(3) { animation: example 0.5s ease 1s forwards; -webkit-animation: example 0.5s ease 3s forwards; -o-animation: example 0.5s ease 3s forwards; -moz-animation: example 0.5s ease 3s forwards; } @keyframes example { 0% { height: 100px; width: 0; } 100% { height: 100px; width: 100px; } }

答案 7 :(得分:0)

我需要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(最佳add it to ~/.basrc