爱爽爽

详细的SCO下的libxml2安装

上一篇 / 下一篇  2007-09-30 10:07:27 / 天气: 阴雨 / 心情: 平静 / 个人分类:Linux

系统环境 SCO5.0.6
_`#{j,t"Y1wh3M0经过2天的鏖战,终于成功的完成了SCO上libxml2的安装和应用程序的编译,
3`!QW5Z3~nG0SCO上安装libxml2不必安装gcc,只要有gnu make即可,以下列出我安装libxml2DOIT博客;\6XX Jb$~-Y
的详细过程和应用程序的编译。很多人都为SCO上libxml2的安装折腾得要命,
p(aztC:KUx G0浪费时间和精力,因此我安装第一遍成功后,又在一个干净的SCO虚拟机上成功
^4E.Lrm-eeM m0实现了一次,并记录了每一个步骤,希望以此能减少各位朋友在SCO上安装libxml2
^c6Ab#X`u"H0所浪费的时间和精力.
0[cS KU LS,f0警告:按此方法安装libxml2后,就无法使用db2 for sco了,原因请看后面的跟贴。DOIT博客VOW5}:CxY
本文未经作者同意,不得用于商业用途!联系方式 [email=dawn_chunlind@sina.com]dawn_chunlind@sina.com[/email]
#|.D&fw.@8w-r0DOIT博客)Z'D3L'e/b2N]
1 SCO补丁包的安装
X-V U$^s!?e0WKq0    使用SCO开发环境自带的make编译libxml2时会因为对Makefile中的某些DOIT博客`S%a'Q:i;I!q
    语法无法解析而导致编译失败,因此需要以GNU Make来进行编译。DOIT博客 XD(e }Es;oTp
    首先下载安装以下文件DOIT博客4Of'FX W+x`;V @
    (顺序安装rs506a、os646c、gwxlibs-1.3.1)DOIT博客s+wAM`*O9K#FLc
    下载地址:
]jCrJAk!\N$D"N0        [url=ftp://ftp.sco.com/pub/openserver5/rs506a]ftp://ftp.sco.com/pub/openserver5/rs506aDOIT博客 gXelp+`RNi
        [url=ftp://ftp.sco.com/pub/openserver5/os646c]ftp://ftp.sco.com/pub/openserver5/os646cDOIT博客;zzR B4G0J
        [url=ftp://ftp.sco.com/pub/openserver5/opensrc/gwxlibs-1.3.1Ba]ftp://ftp.sco.com/pub/openserver5/opensrc/gwxlibs-1.3.1Ba
a q n E/H)rX0    
dG7KJ4A Rn ~3w0    1.1 安装rs506a:DOIT博客3r[cW.alJ
        以root用户登陆sco系统DOIT博客 B N AnQc
        #cd /tmp
u;Yh;\4j,r o0        #mkdir rs506a
~kU{)[}0        (用ftp工具,将下载的rs506a.tar传递到sco的/tmp/rs506a目录下)
Y^J4S4{DV0        #cd rs506a              #进入rs506a目录DOIT博客/p,O1q2cs ] ne
        #tar -xvf rs506a.tar    #解包DOIT博客H7[S$PS6fm)} i:~n"d
        DOIT博客8Q9Q;m?l6Zw&g;B
        #custom                 #执行安装
1p~D3K Kxp;K0          ->Software->Install New..DOIT博客BrNzr+Fe
                        ->本地DOIT博客r-u:_5U;QM
                        ->media device   [Media Images    ]DOIT博客:^2LZx [ k
                        ->Image Directory[/tmp/rs506a     ]DOIT博客"OU}U DP5vJ
                        ->Select software to install
t(X@JU2vC0                          一共4个项目,我们只安装第2、3项,DOIT博客/\ A2h;WVW@
                          移动光标,按空格键将要安装项目的前面打上'*'DOIT博客ZF*\T_
                          后续过程默认
tZ Etk0        #reboot                 #安装后要重启系统DOIT博客G3u b r ]
       DOIT博客e;l)u+SI7Yr
    1.2 安装os646c:
q D6~6v Wryc R0        os646c下载后是个文件夹,直接ftp到sco的tmp目录下,后续安装与rs506a雷同,但不用重启系统DOIT博客]Z-J7_@xLQ
    1.3 安装gwxlibs-1.3.1Ba
S-G;]/{5wD&k:S0        与os646c的安装类同,不用重启系统DOIT博客v"R.w5K5M%coAhQ
        
x0B gFw*}`1?d@U0E0    1.4 修改.profile:DOIT博客2V-}x3ni-h
        #vi /.profile
~}y;lih4u(g#h(l'o M {0            在PATH赋值中,加上"/usr/gnu/bin/msgfmt",如下:
0lE-j!~*~} w0                PATH=/bin:/etc:/usr/bin:/tcb/bin:/usr/gnu/bin/msgfmtDOIT博客T/cW:[2t
    1.5 重新登陆rootDOIT博客oFAb7x4}2t:\6P.I
        
!Hlwq(k'U}0DOIT博客fy i*j+u%NV"m X$G
2 下载并安装gnu make包:
l,p8UrA%e _3S0    如果sco没有事先安装gnu make,那么make时会报告格式错。
zl$I]2W0    这个地址可以高速下载([url=http://download.enet.com.cn/html/242262000111301.html]http://download.enet.com.cn/html/242262000111301.html)
O |LV u:l0    下载的文件是:make-3.79.1.tar.gzDOIT博客OY^Mhp*KV0_
    因为我的sco没有gzip,所以就用windows下的rar进行解压缩,
0R9e;o,e#A2R;hD^0    解压后的文件夹是 make-3.79.1DOIT博客O rI.F`o
    通过ftp工具,将make-3.79.1文件夹传到sco的/tmp目录下DOIT博客N1I d8j/olW@
    
v+\ xM P]0    以root用户登陆sco
^UcYM*VC0    次序执行以下命令;DOIT博客 VIBk V!k&h1k'[?
        #cd /tmp                        #进入tmp目录
:w,j9B\$xM@'lDS9o0        #chmod -R 755 make-3.79.1       #将目录内文件设置可执行权限
&C#d ~0AK'|S1LUm0        #mkdir make-build               #建立安装目录DOIT博客I1cn T F e
        #cd make-build                  #进入安装目录
-jc1Bl\%v2w^0        #../make-3.79.1/configure       #执行配置文件DOIT博客Y1U;]%jC~)l
        #make                           #编译后,会生成一个"make"文件在当前目录下
5a+A mZ{i0k^\0        #cd /usr/binDOIT博客CQ$u"ym6rN\9D
        #mv make make.old               #备份原始的make命令DOIT博客 e't!sq:LI8JM
        #cp /tmp/make-build/make .      #拷贝新的make到bin目录下
Qu~/HuL:Xu5g1o0    DOIT博客l5sl1{~&?4Z6v
3 下载并编译libiconv和libxml2DOIT博客m'_tx-Q8F4w!v
    3.1 libiconv的安装
-sh(E$QJ6S;{G S0L0        到 ftp.gnu.org/pub/gnu/libiconv/DOIT博客` v5^m L.cW"M
        下载的libiconv-1.11.tar.tar在windows下解压(我的sco没有gzip)DOIT博客GGM` ZDCJ
        然后将目录 ibiconv-1.11 传到sco的/tmp目录中
2}~ mG Qt)D0        DOIT博客H D o3Z%CA'x
        以root用户登陆sco
n~x)E7f?,MT0        次序执行以下命令;DOIT博客Lq(L L1|
            #cd /tmp
Siu'C-[0            #chmod -R 755 ibiconv-1.11
\'o%n0f$tEN0            #mkdir ibiconv-build
TT+CT!b`8RQ0            #cd ibiconv-build 
%s#Z9D,v!j{#h0            #../libiconv-1.11/configure --enable-static=yes         #配置并生成静态库模式DOIT博客5qP'_+^"t
            #make                                                   #创建编译环境DOIT博客 ?#Qf3w u {
            #make install                                           #安装环境
3[9A+nQ8V0        
~^3\9Jc0Bh0    3.2 libxml2的安装
;@tC#| P#Zcd @1X0            到[url=ftp://xmlsoft.org/libxml2/]ftp://xmlsoft.org/libxml2/DOIT博客?)l^!p6fM@w
        下载的libxml2-2.6.29.tar.gz在windows下解压(我的sco没有gzip)DOIT博客5o} `*^bh)|jL
        然后将目录 libxml2-2.6.29 传到/tmp目录中DOIT博客:N C6P3@-P
        以root用户登陆sco
js8g+`6i?%s0        次序执行以下命令;
u$t(F/JK0            #cd /tmp
Bt_aJ"M0            #chmod -R 755 libxml2-2.6.29
Ri[;O:_%uB(n#w*O0            #cd libxml2-2.6.29DOIT博客H"{U6DI{U
            #vi testModule.cDOIT博客 r \c`)Cy
                在程序开始处增加以下代码:DOIT博客gv0k!HP6bK[L
                    #ifndef PATH_MAX
7?1^)M1Q$o3v,d0                    #ifdef _POSIX_PATH_MAXDOIT博客&?C{+hobc:wuW
                    #define PATH_MAX _POSIX_PATH_MAX
#qE{t9r0                    #elseDOIT博客"S,Cu*Wy4H
                    #define PATH_MAX 255
K'J.RD/f f5m6F!R0                    #endifDOIT博客yr3Opq*Q^[
                    #endifDOIT博客J*G%a*n FB$@
            #cd /tmpDOIT博客6u7tofV9V2x,B)t
            #mkdir libxml-buildDOIT博客 K"c-z B'CQ?z$a(Ii
            #cd libxml-build 
,ObrE4d/R#a k0            #../libxml2-2.6.29/configure --with-iconv=/usr/local         #配置并生成静态库模式
NZ4a1_]f k f*b0            #make                                                        #编译DOIT博客!X'ZgZ*qP
            #make install                                                #安装
(kg o [\1h2n LF0
_wY$r!yHT;l'O04 配置开发环境DOIT博客G&^pavK,i;Xr
    要想编译基于xml得程序,要做以下步骤DOIT博客3^!m3rS J3_(kN7y
    4.1连接库,否则应用程序启动后报告动态连接库不存在DOIT博客1b5]*| x ^@$B][h
        #cd /usr/libDOIT博客7z;Q)c2LP!}
        #ln -s /usr/local/lib/libiconv.so.6 libiconv.so.6
6CXhG.OY?0        #ln -s /usr/local/lib/libxml2.so.8 libxml2.so.8     
"q#]1DB/b0    4.2在一普通用户下编写测试程序和xml文档
hVh.]:} a$b6cm0        test.c文件内容DOIT博客0qS*S:d~
            #include "libxml/xmlexports.h"DOIT博客J7Jg~1P Q,^
            #include "libxml/parser.h"
K#Y6`U*\6`9pH U@0            DOIT博客;Dat0}^u
            main( int argc, char **argv )DOIT博客$_ v&Mx!E/i
            {DOIT博客&bs~f d)_W z
                xmlDocPtr doc;
%`:K#kCgu0                if( (doc = xmlReadFile( argv[1], NULL, 0)) == NULL )
~X.kWlj)N0                {
p3tD5v,N#f {0                    printf( "error!\n" );DOIT博客 nbm8i,Sf5U2ONwnA
                    exit( -1 );
_$vM[L(bz%av\0                }DOIT博客1b$J Ng-|^!xn~:|M
                printf( "OK!\n" );DOIT博客+`p%n6~D"`+?7\
                xmlCleanupParser();DOIT博客 og-h ]4kr1i|j(__
                exit( 0 );
X N1zP?_M g!x0            }
\ Z.K:O1PX4w@/z0        
(l N$R7Gx0i Qt0p3T0        test.xml文件内容:DOIT博客Ul3iiW3t R*u2TL
            <?xml version="1.0" encoding="GBK"?>DOIT博客}.W+xNje7k_{v
            <CFX>
@g @)TdQ0             <HEAD>DOIT博客ol9YJU2A
             <VER>1.0</VER>
|'O:Kz0P$QB:d0             <SRC>202010000000</SRC>DOIT博客&WB3iBLh
             <DES>100000000000</DES>
"aBq*e3D4@)k }"Z0             <APP>tips</APP>DOIT博客E*nJI&_(o:Z
             <MsgNo>1102</MsgNo>DOIT博客lA2k8fPA8Zm
             <MsgID>20051024092733000440</MsgID>DOIT博客 o-z ?7_I:Z6C8D&?)U
             <MsgRef>20051024092733000440</MsgRef>
O0mMQ P:V0O0             <WorkDate>20051024</WorkDate>DOIT博客yqTtV t3q+l!i*HK
             <Reserve>String</Reserve>DOIT博客#de&r%h dkJ a
             </HEAD>
0O Chk$? K,x3Ez0            </CFX>DOIT博客6^0aVZ8A5d
    4.3编译并执行测试程序DOIT博客#k;I:~'th2Ar$b!^
        编写makefile文件:
VO]!\)W@7]y0            makefile文件内容DOIT博客 \9zC'Ao9Q^`8?
            # Define System Command
0V6e%s,m*`6}:G&]0            CC=ccDOIT博客"XX_!u}H
            DOIT博客o4X"i#\@ e
            # Define Compile Flags
BfN {m*v/|{9D0            LIBS=/usr/lib/libz.so -L/usr/local/lib -lxml2 -liconv -lm -lsocketDOIT博客,aLH+q6F#G!N0n
            INCDIR=-I/usr/local/include/libxml2 -I/usr/local/includeDOIT博客#B;PAzzB%Bz
            DOIT博客@l EA7d%aw.A1`5Q
            # Define All Objects
j3Sy3` U0            all: test
m]"G`JG9s)]6t0            DOIT博客 I"k3a%g}7]
            test:test.oDOIT博客g wr1_s p0h9j~
                    $(CC) -o $@ $(INCDIR) $(LIBS) test.oDOIT博客O3f9F[:d
            
&K!?(UBK.QJ0            # Define Complile Rules
7v)J7H+hmf0            .SUFFIXES:.c
,x wV A~.l.r.OI0            .c.o:DOIT博客g y5[:V(p@ ]d-u
                    $(CC) -c -o $*.o $(INCDIR) $<DOIT博客9F8t*m `+P9Zz
        
N'g?m3T/~ k0        编译:
!c:^6sD0f1nYj{P0            执行make命令即可,在当前目录下生成test程序。
lXOa3_.J(P(q0        执行:
mEzo5r7Xj#L|0            在当前目录下执行 ./test test.xml 如果显示"OK!"表示编译环境安装成功。

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 3475
  • 日志数: 22
  • 图片数: 1
  • 建立时间: 2007-09-13
  • 更新时间: 2007-10-02

RSS订阅

Open Toolbar