make subversion时出现neon报错 及 svn其他问题汇总(3ge )

 

在make subvision时,出现以下错误提示:

 

/usr/local/src/neon-0.29.6/src/ne_auth.c:781: undefined reference to`ne__ntlm_destroy_context’

 

/usr/local/src/neon-0.29.6/src/ne_auth.c:785: undefined reference to`ne__ntlm_create_context’

 

collect2: ld returned 1 exit status

 

make: *** [subversion/libsvn_ra_neon/libsvn_ra_neon-1.la] Error 1

 

最终解决:在neon的Makefile里加一行CFLAGS = -fPIC -g -O2,重新编译neon

subversion的configure是

./configure --prefix=/usr/local/subversion --with-neon=/usr/local/neon --with-ssl --with-apache-libexecdir=/usr/local/apache

然后在Makefile的include里面加 -I/usr/local/httpd/include

 

然后又来了一个问题:

E200030 SQLITE compiled for 3.7.17 but running with 3.6.20

http://my.oschina.net/wenic705/blog/55231

最后解决是: rm -f  usr/lib64/libsqlite3.so.0 && ln -s usr/local/libsqlite3.so.0.8.6 usr/lib64/libsqlite3.so.0

 

原 sqlite3 svn错误:编译于3.7.11,运行于3.6.20

经过几番清除,安装,都没有解决,折腾一天后终于发现问题了。

原来sqlite在centos x64系统下的组件目录在usr/lib64/libsqlite3.so.0.8.6,而新安装的sqlite3则放到了 usr/local/lib下,没有覆盖到lib64下,而lib64下却是有优先权,造成编译和运行不能统一版本。可以用新安装的usr/local/libsqlite3.so.0.8.6覆盖usr/lib64/libsqlite3.so.0.8.6,重启下可以解决了。网上有种说法是直接删掉lib64下的老版本,我不敢试,不管是yum还是rpm都依赖这个组件,万一出错很要命。

 

 

 

可能错误现象:
/tools/svn/bin/svn: symbol lookup error: /tools/svn/lib/libsvn_subr-1.so.0: undefined symbol: apr_atomic_xchgptr

错误解决
新配置的服务器,在运行svn命令时,全部出错显示上面的错误信息。
在网上搜索发现,原来这个错误是由于系统已经安装了apr的库文件,而在编译Svn时已经指定了httpd的apr库。
在执svn命令时,优先从系统自带的apr库载入,而引起不必要的错误。

只需要执行以下命令,将apr和apr-util都卸载即可

rpm -e --allmatches apr-util --nodeps
rpm -e --allmatches apr --nodeps

 

============================================

 

 

 

 

编译一个文件,出现如上问题。

原因是,libneon.a这个静态库,用到了某些函数如ne_xml_create,但是,在编译时却找不到这些函数的定义。

解决办法:

      libneon.a需要用expat,或者libxml来解析。所以,只要在系统中,安装expat(如expat-2.0.0.tar.gz)或者libxml就可以了。

      此外,在编译时,还要链接上相应的库,若使用expat,则加上 -lexpat

 

解决方法:修改/usr/local/src/neon-0.29.6/src/Makefile,将CFLAGS = -g -O2 -prefer-pic 改成 CFLAGS = -fPIC -g -O2,然后重新编译neon,接着再重新编译subversion即可。

 

posted @ 2015-08-04 09:56  vanishfan  阅读(1982)  评论(0编辑  收藏  举报