cnangel手记: January 2008的归档

x64平台的一些问题

| 暂无评论
在x64位机器上使用libxml动态库时,发现从源码安装php时候老是make不上,即时指定libxml的安装路径也是无效果,make错误如下
ext/libxml/.libs/libxml.o(.text+0x555): In function `_php_libxml_free_error':
/home/lijunlia/opt/src/php-5.2.5/ext/libxml/libxml.c:441: undefined reference to `xmlResetError'
ext/libxml/.libs/libxml.o(.text+0x5a9): In function `_php_list_set_error_structure':
/home/lijunlia/opt/src/php-5.2.5/ext/libxml/libxml.c:455: undefined reference to `xmlCopyError'
ext/libxml/.libs/libxml.o(.text+0xf6a): In function `zm_activate_libxml':
/home/lijunlia/opt/src/php-5.2.5/ext/libxml/libxml.c:651: undefined reference to `xmlParserInputBufferCreateFilenameDefault'
ext/libxml/.libs/libxml.o(.text+0xf76):/home/lijunlia/opt/src/php-5.2.5/ext/libxml/libxml.c:652: undefined reference to `xmlOutputBufferCreateFilenameDefault'
...
/home/lijunlia/opt/src/php-5.2.5/ext/xmlwriter/php_xmlwriter.c:1523: undefined reference to `xmlNewTextWriterMemory'
ext/xmlwriter/.libs/php_xmlwriter.o(.text+0x1e7d): In function `php_xmlwriter_flush':
/home/lijunlia/opt/src/php-5.2.5/ext/xmlwriter/php_xmlwriter.c:1581: undefined reference to `xmlTextWriterFlush'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
进入libxml安装目录,直接查看lib库中是否有xmlTextWriterFlush这个引用:
$nm libxml2.so |grep xmlTextWriterFlush
00000000000f3060 T xmlTextWriterFlush
为什么有上面这个错误呢?查了好久,发现x64的平台寻找lib时,首先会寻找/usr/lib64这个目录,我发现这个目录里面有一个libxml2.so,是一个老版本,导致一些东西没有定义:
$nm libxml2.so.2.5.10  |grep xmlTextWriterFlush
nm: libxml2.so.2.5.10: no symbols
$nm libxml2.so.2.6.30 |grep xmlTextWriterFlush
00000000000f3060 T xmlTextWriterFlush
郁闷了老半天,知道错误后,然后删除lib64目录下的一些老版本的libxml2.so,然后重新configure:
./configure --prefix=/home/lijunlia/opt/usr/local/php --with-apxs2=/home/lijunlia/opt/usr/local/apache2/bin/apxs --with-mysql=/home/lijunlia/opt/usr/local/mysql --with-config-file-path=/home/lijunlia/opt/etc --with-gd --with-zlib --with-jpeg-dir=/usr/local/jpeg --with-libxml-dir=/usr --enable-sockets --with-iconv --enable-mbstring --enable-soap --with-curl --with-freetype-dir=/usr/local --with-pgsql=/home/lijunlia/opt/usr --enable-zend-multibyte
终于出现了:
Build complete.
Don't forget to run 'make test'.
作此笔记,以儆效尤。

关于libjpeg库

| 评论(2)
用到libjpeg库的时候,发现有时候默认安装时,会和其他软件产生一些问题,因为默认安装并没有把文件的静态库和动态库安装上,默认安装的只是一些可执行文件而已,故configure选项的时候需要多选择几项,比如:
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static --libdir=/usr/local/jpeg/lib --includedir=/usr/local/jpeg/include
这样连动态库和静态库都安装上了,注意需要安装libtools工具。
好几次安装libjpeg库都忘记这个库与其他的lib不同,导致我经常上当,以为缺少什么东西呢?想想起来,从文件名字就可以知道jpegsrc.v6b.tar.gz不像libpng一样,做一个小小的笔记吧。 :)
jpegsrc.v6b.tar.gz源码提供如下:jpegsrc.v6b.tar.gz

HTTP代理获取设计

| 暂无评论

关于一些琐事

| 评论(2)
    这里仅仅做一个笔记。
    firefox支持jre的appletviewer又出现了问题,即使重装也无效果,其原因是系统安装了与其环境有冲突的包,由于年代久远,也不知道哪个包影响到了浏览器上的applet应用小程序的输出,以前的解决办法是一个非常笨的方法,就是把所有与jdk和jre有关的包包卸载。
    如果是yum安装,直接yum remove jdk or jre;如果是rpm安装,只需要rpm -e jre or jdk即可,如果不知道自己安装了哪些包,直接rpm -qa|grep jre or jdk,如果你是直接java二进制安装,找到安装目录,直接rm -rf
    有部分系统可能是java名字的包,统统卸载;
    卸载干净后,然后安装一个jre or jdk,然后,给firefox做一个扩展,本身jre or jdk已经有了这个扩展,我们借用一下:
    ln -sf /usr/java/jre1.6.0_03/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox-2.0.0.10/plugins
    这样就完成了firefox支持applet小应用程序的安装,绝对无问题哟!但是现在装了java软件一大堆,我不知道哪个与现在的程序带来冲突,如果全部卸载又要一晚上的安装,无奈,本身用到applet不是很多,等用到的时候再解决吧。
    关于Movable Type出了MTOS,全称是Movable Type Open Source,感觉功能上没有什么改进,本来想把现在的4.01版本更新一下尝尝鲜,无奈Bug多多,只好作罢。
    12月份的 Relevance的编程大赛 本来想参加的,估计又参加不了了,元旦这几天补睡眠,加上雪缘改版,博彩的导入够我忙上一阵子了,本身博彩的架构就该改写了,无奈总是时间太少,不知道自己天天都做些什么?