svn:加载共享库时出错:libserf-1.so.1:无法打开共享对象文件:没有这样的文件或目录
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
我在启用 serf 的情况下编译了 svn 1.8.5。
./configure --prefix=/home/user/Downloads/svn --with-editor=/home/user/Downloads/vim74-install/bin/vim --with-openssl --with-serf=$HOME/Downloads/serf_install && make && make install
然后svn报错:
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
libserf-1.so.1
(及其指向的文件)确实存在
$ll $HOME/Downloads/serf_install/lib/libserf-1.so.1
lrwxrwxrwx 1 user group 18 Feb 22 12:50 /home/user/Downloads/serf_install/lib/libserf-1.so.1 -> libserf-1.so.1.3.0
$ll /home/user/Downloads/serf_install/lib/libserf-1.so.1.3.0
-rwxr-xr-x 1 user group 128441 Feb 22 12:50 /home/user/Downloads/serf_install/lib/libserf-1.so.1.3.0
如有任何想法,我们将不胜感激。
问题是默认情况下,最终构建中不包含非标准位置中任何动态链接库的绝对路径。假设您正在使用 Linux 和 gcc,您可以
- 通过将附加标志传递给链接器以存储完整路径来在编译时修复问题:在上面的配置命令前加上
LDFLAGS="-Wl,-rpath,$HOME/Downloads/serf_install/lib"./configure...
或
- 通过在每次使用 svn 之前执行
export LD_LIBRARY_PATH="$HOME/Downloads/serf_install/lib:$LD_LIBRARY_PATH"
或将其添加到您的 .bashrc
文件 来在运行时解决问题
前一种方案当然是首选,因为它从根本上解决了问题,而不是提供创可贴。
问题已通过添加解决,
LD_LIBRARY_PATH=${SVN_HOME}/lib:${LD_LIBRARY_PATH}
导出 LD_LIBRARY_PATH
在用户的.profile 文件中。
我在启用 serf 的情况下编译了 svn 1.8.5。
./configure --prefix=/home/user/Downloads/svn --with-editor=/home/user/Downloads/vim74-install/bin/vim --with-openssl --with-serf=$HOME/Downloads/serf_install && make && make install
然后svn报错:
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
libserf-1.so.1
(及其指向的文件)确实存在
$ll $HOME/Downloads/serf_install/lib/libserf-1.so.1
lrwxrwxrwx 1 user group 18 Feb 22 12:50 /home/user/Downloads/serf_install/lib/libserf-1.so.1 -> libserf-1.so.1.3.0
$ll /home/user/Downloads/serf_install/lib/libserf-1.so.1.3.0
-rwxr-xr-x 1 user group 128441 Feb 22 12:50 /home/user/Downloads/serf_install/lib/libserf-1.so.1.3.0
如有任何想法,我们将不胜感激。
问题是默认情况下,最终构建中不包含非标准位置中任何动态链接库的绝对路径。假设您正在使用 Linux 和 gcc,您可以
- 通过将附加标志传递给链接器以存储完整路径来在编译时修复问题:在上面的配置命令前加上
LDFLAGS="-Wl,-rpath,$HOME/Downloads/serf_install/lib"./configure...
或 - 通过在每次使用 svn 之前执行
export LD_LIBRARY_PATH="$HOME/Downloads/serf_install/lib:$LD_LIBRARY_PATH"
或将其添加到您的.bashrc
文件 来在运行时解决问题
前一种方案当然是首选,因为它从根本上解决了问题,而不是提供创可贴。
问题已通过添加解决, LD_LIBRARY_PATH=${SVN_HOME}/lib:${LD_LIBRARY_PATH} 导出 LD_LIBRARY_PATH
在用户的.profile 文件中。