我在启用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
任何想法都表示赞赏。
答案 0 :(得分:6)
问题在于,默认情况下,非标准位置中任何动态链接库的绝对路径不包含在最终构建中。假设您使用的是Linux和gcc,您可以
LDFLAGS="-Wl,-rpath,$HOME/Downloads/serf_install/lib"./configure...
或export LD_LIBRARY_PATH="$HOME/Downloads/serf_install/lib:$LD_LIBRARY_PATH"
或将其添加到.bashrc
文件前一种解决方案当然是首选,因为它解决了根本问题,而不是提供创可贴。
答案 1 :(得分:0)
问题通过添加解决, LD_LIBRARY_PATH = $ {} SVN_HOME / lib目录下:$ {LD_LIBRARY_PATH} export LD_LIBRARY_PATH
在用户的.profile文件中。