中国青基会
RSS
热门关键字:  None  linux+moodle安装  mac  rhel5  199
当前位置 : Nixsky>UNIX>SCO UNIX>列表

详细的SCO下的libxml2安装

来源:CU 作者:chunlind 时间:2007-09-26 点击:
系统环境 SCO5.0.6
经过2天的鏖战,终于成功的完成了SCO上libxml2的安装和应用程序的编译,
SCO上安装libxml2不必安装gcc,只要有gnu make即可,以下列出我安装libxml2
的详细过程和应用程序的编译。很多人都为SCO上libxml2的安装折腾得要命,
浪费时间和精力,因此我安装第一遍成功后,又在一个干净的SCO虚拟机上成功
实现了一次,并记录了每一个步骤,希望以此能减少各位朋友在SCO上安装libxml2
所浪费的时间和精力.
警告:按此方法安装libxml2后,就无法使用db2 for sco了,原因请看后面的跟贴。
本文未经作者同意,不得用于商业用途!联系方式 [email=dawn_chunlind@sina.com]dawn_chunlind@sina.com[/email]

1 SCO补丁包的安装
    使用SCO开发环境自带的make编译libxml2时会因为对Makefile中的某些
    语法无法解析而导致编译失败,因此需要以GNU Make来进行编译。
    首先下载安装以下文件
    (顺序安装rs506a、os646c、gwxlibs-1.3.1)
    下载地址:
        [url=ftp://ftp.sco.com/pub/openserver5/rs506a]ftp://ftp.sco.com/pub/openserver5/rs506a
        [url=ftp://ftp.sco.com/pub/openserver5/os646c]ftp://ftp.sco.com/pub/openserver5/os646c
        [url=ftp://ftp.sco.com/pub/openserver5/opensrc/gwxlibs-1.3.1Ba]ftp://ftp.sco.com/pub/openserver5/opensrc/gwxlibs-1.3.1Ba
    
    1.1 安装rs506a:
        以root用户登陆sco系统
        #cd /tmp
        #mkdir rs506a
        (用ftp工具,将下载的rs506a.tar传递到sco的/tmp/rs506a目录下)
        #cd rs506a              #进入rs506a目录
        #tar -xvf rs506a.tar    #解包
        
        #custom                 #执行安装
          ->Software->Install New..
                        ->本地
                        ->media device   [Media Images    ]
                        ->Image Directory[/tmp/rs506a     ]
                        ->Select software to install
                          一共4个项目,我们只安装第2、3项,
                          移动光标,按空格键将要安装项目的前面打上'*'
                          后续过程默认
        #reboot                 #安装后要重启系统
       
    1.2 安装os646c:
        os646c下载后是个文件夹,直接ftp到sco的tmp目录下,后续安装与rs506a雷同,但不用重启系统
    1.3 安装gwxlibs-1.3.1Ba
        与os646c的安装类同,不用重启系统
        
    1.4 修改.profile:
        #vi /.profile
            在PATH赋值中,加上"/usr/gnu/bin/msgfmt",如下:
                PATH=/bin:/etc:/usr/bin:/tcb/bin:/usr/gnu/bin/msgfmt
    1.5 重新登陆root
        

2 下载并安装gnu make包:
    如果sco没有事先安装gnu make,那么make时会报告格式错。
    这个地址可以高速下载([url=http://download.enet.com.cn/html/242262000111301.html]http://download.enet.com.cn/html/242262000111301.html)
    下载的文件是:make-3.79.1.tar.gz
    因为我的sco没有gzip,所以就用windows下的rar进行解压缩,
    解压后的文件夹是 make-3.79.1
    通过ftp工具,将make-3.79.1文件夹传到sco的/tmp目录下
    
    以root用户登陆sco
    次序执行以下命令;
        #cd /tmp                        #进入tmp目录
        #chmod -R 755 make-3.79.1       #将目录内文件设置可执行权限
        #mkdir make-build               #建立安装目录
        #cd make-build                  #进入安装目录
        #../make-3.79.1/configure       #执行配置文件
        #make                           #编译后,会生成一个"make"文件在当前目录下
        #cd /usr/bin
        #mv make make.old               #备份原始的make命令
        #cp /tmp/make-build/make .      #拷贝新的make到bin目录下
    
3 下载并编译libiconv和libxml2
    3.1 libiconv的安装
        到 ftp.gnu.org/pub/gnu/libiconv/
        下载的libiconv-1.11.tar.tar在windows下解压(我的sco没有gzip)
        然后将目录 ibiconv-1.11 传到sco的/tmp目录中
        
        以root用户登陆sco
        次序执行以下命令;
            #cd /tmp
            #chmod -R 755 ibiconv-1.11
            #mkdir ibiconv-build
            #cd ibiconv-build 
            #../libiconv-1.11/configure --enable-static=yes         #配置并生成静态库模式
            #make                                                   #创建编译环境
            #make install                                           #安装环境
        
    3.2 libxml2的安装
            到[url=ftp://xmlsoft.org/libxml2/]ftp://xmlsoft.org/libxml2/
        下载的libxml2-2.6.29.tar.gz在windows下解压(我的sco没有gzip)
        然后将目录 libxml2-2.6.29 传到/tmp目录中
        以root用户登陆sco
        次序执行以下命令;
            #cd /tmp
            #chmod -R 755 libxml2-2.6.29
            #cd libxml2-2.6.29
            #vi testModule.c
                在程序开始处增加以下代码:
                    #ifndef PATH_MAX
                    #ifdef _POSIX_PATH_MAX
                    #define PATH_MAX _POSIX_PATH_MAX
                    #else
                    #define PATH_MAX 255
                    #endif
                    #endif
            #cd /tmp
            #mkdir libxml-build
            #cd libxml-build 
            #../libxml2-2.6.29/configure --with-iconv=/usr/local         #配置并生成静态库模式
            #make                                                        #编译
            #make install                                                #安装

4 配置开发环境
    要想编译基于xml得程序,要做以下步骤
    4.1连接库,否则应用程序启动后报告动态连接库不存在
        #cd /usr/lib
        #ln -s /usr/local/lib/libiconv.so.6 libiconv.so.6
        #ln -s /usr/local/lib/libxml2.so.8 libxml2.so.8     
    4.2在一普通用户下编写测试程序和xml文档
        test.c文件内容
            #include "libxml/xmlexports.h"
            #include "libxml/parser.h"
            
            main( int argc, char **argv )
            {
                xmlDocPtr doc;
                if( (doc = xmlReadFile( argv[1], NULL, 0)) == NULL )
                {
                    printf( "error!\n" );
                    exit( -1 );
                }
                printf( "OK!\n" );
                xmlCleanupParser();
                exit( 0 );
            }
        
        test.xml文件内容:
            <?xml version="1.0" encoding="GBK"?>
            <CFX>
             <HEAD>
             <VER>1.0</VER>
             <SRC>202010000000</SRC>
             <DES>100000000000</DES>
             <APP>tips</APP>
             <MsgNo>1102</MsgNo>
             <MsgID>20051024092733000440</MsgID>
             <MsgRef>20051024092733000440</MsgRef>
             <WorkDate>20051024</WorkDate>
             <Reserve>String</Reserve>
             </HEAD>
            </CFX>
    4.3编译并执行测试程序
        编写makefile文件:
            makefile文件内容
            # Define System Command
            CC=cc
            
            # Define Compile Flags
            LIBS=/usr/lib/libz.so -L/usr/local/lib -lxml2 -liconv -lm -lsocket
            INCDIR=-I/usr/local/include/libxml2 -I/usr/local/include
            
            # Define All Objects
            all: test
            
            test:test.o
                    $(CC) -o $@ $(INCDIR) $(LIBS) test.o
            
            # Define Complile Rules
            .SUFFIXES:.c
            .c.o:
                    $(CC) -c -o $*.o $(INCDIR) $<
        
        编译:
            执行make命令即可,在当前目录下生成test程序。
        执行:
            在当前目录下执行 ./test test.xml 如果显示"OK!"表示编译环境安装成功。
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册