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

Abd*_*hed 16 c++ gsl

我用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

我已经按照上面的链接写了但是错误仍然存​​在.谁能帮我?

Inq*_*ive 11

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

启动Borne Shell

$LD_LIBRARY_PATH= path to your gsl lib folder inside the gsl installation folder
$export LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

现在运行可执行文件

它应该工作正常.


小智 5

我在Arch Linux上遇到了与Krita相同的错误。我做了一个符号链接

ln /usr/lib/libgsl.so /usr/lib/libgsl.so.0
Run Code Online (Sandbox Code Playgroud)

并解决了它。


Man*_*ork 5

首先,您需要找到该文件(libgsl.so.0).例如,您可以使用以下find命令执行此操作:

sudo find / -name "libgsl.so.0"
Run Code Online (Sandbox Code Playgroud)

我们假设,文件位于/usr/local/lib.(如果找不到该文件,请安装相应的软件包下载源代码,构建并安装它.)现在,您有两个选择:

(1)快速和肮脏:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

这会将库的路径添加到环境变量中.此选项的缺点是,它仅对当前会话有效.它不适用于其他用户.一旦您注销并再次打开它将无法工作.

(2)永久:

检查你的/etc/ld.so.conf.如果/usr/local/lib未列在那里,请添加它.现在,运行ldconfig以检测共享对象文件并将其添加到某个系统范围的索引.


gin*_*kgo 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
Run Code Online (Sandbox Code Playgroud)

将这些行添加到.bashrc主目录中的文件中。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export CFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

然后,运行source〜/ .bashrc设置这些环境变量。

当我将版本从最新更改为1.6时,它可以正常工作。