`
llshenglin
  • 浏览: 21861 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

libxml安装

阅读更多
1.PC机环境的安装
下载安装包:
    到官方网站下载安装包,网址:http://xmlsoft.org/downloads.html。我使用的源码包为:libxml2-2.7.8.tar.gz
PC端安装
解压:
#tar zxvf libxml2-2.7.8.tar.gz

解压后,进入目录,并对libxml2进行配置。在PC机上的配置相对比较简单,只需指定相应的安装目录就行了。
#./configure –prefix=/usr/local/arm/libxml_pc
#make
#make install

编译、安装完成后,在/usr/local/arm/libxml_pc目录下会产生四个目录,编译成功。

ARM交叉编译、移植
删除之前的libxml2解压后的目录,对libxml2-2.7.8.tar.gz再一次解压。并配置编译选项。
# ./configure --host=arm-linux --build=i386-linux --target=arm --prefix=/usr/local/arm/libxml_arm CC=/usr/local/arm/4.1.1/bin/arm-9tdmi-linux-gnu-gcc --without-zlib

注:--without-zlib选项很重要,如果不加此选项,make的时候会提示如下错误:
./.libs/libxml2.so: undefined reference to `gzopen'
./.libs/libxml2.so: undefined reference to `gzclose'
./.libs/libxml2.so: undefined reference to `deflate'
./.libs/libxml2.so: undefined reference to `gzrewind'
./.libs/libxml2.so: undefined reference to `gzwrite'
./.libs/libxml2.so: undefined reference to `crc32'
./.libs/libxml2.so: undefined reference to `deflateEnd'
./.libs/libxml2.so: undefined reference to `gzdopen'
./.libs/libxml2.so: undefined reference to `deflateInit2_'
./.libs/libxml2.so: undefined reference to `gzread'
collect2: ld returned 1 exit status

注:arm-9tdmi-linux-gnu-gcc是开发板指定的交叉编译工具,如果使用arm-linux-gcc,在程序运行的时候,会有错误提示:找不到gcclib库文件。这是因为开发板上没有与arm-linux-gcc相关的gcclib库文件。
#make
#make install
安装完成后,在/usr/local/arm/libxml_arm目录下,同样会产生四个目录。然后把lib目录下的库文件拷到开发板上即可。需要拷的文件:
Libxml2.so
libxml2.so.2
libxml2.so.2.7.8
libxml2.la(这个可能不需要)
移植完成。



开发与libxml2相关的应用程序,最好在Makefile中配置两种不同的编译环境和运行环境。
#INCLUDEXML = /usr/local/arm/libxml_arm2/include/libxml2
#LIBXML = /usr/local/arm/libxml/lib
#CC = gcc

INCLUDEXML = /usr/local/arm/cc/include/libxml2
LIBXML = /usr/local/arm/cc/lib
CC = /usr/local/arm/4.1.1/bin/arm-9tdmi-linux-gnu-gcc

DIR = /usr/local/arm/gsoap-linux-2.7

OBJS = main.o order.o parse.o web.o soapC.o soapClient.o stdsoap2.o
CFLAGS = -Wall -I$(DIR) -O2 -I$(INCLUDEXML) -L$(LIBXML) -lxml2

parse: $(OBJS)
	$(CC) $(OBJS) $(CFLAGS) -o $@ 
	#$(CC) $(OBJS) -o main

order.o : order.c order.h
	$(CC) $(CFLAGS) -c $< -o $@

parse.o : parse.c parse.h
	$(CC) $(CFLAGS) -c $< -o $@

web.o : webService/web.c webService/soapH.h webService/Service1Soap12.nsmap
	$(CC) $(CFLAGS) -c $< -o $@

soapC.o:webService/soapC.c webService/soapH.h
	$(CC) $(CFLAGS) -c $< -o $@

soapClient.o: webService/soapClient.c webService/soapH.h
	$(CC) $(CFLAGS) -c $< -o $@

stdsoap2.o: $(DIR)/stdsoap2.c $(DIR)/stdsoap2.h
	$(CC) $(CFLAGS) -c $< -o $@

define	run-rm
	rm -rf *.o *~ .tmp_versions
endef

.PHONY:clean
clean:
	$(run-rm)


    上面的Makefile比较复杂,它除了编译libxml2文件外,还使用了gsoap调用webService服务。配置了PC机和ARM板上两种不同的运行环境。调试时,用PC机上的可执行环境,生成目标程序则使用arm所需的环境。




gsoap生成需要的头文件
#!/bin/sh
/usr/local/arm/gsoap-linux-2.7/wsdl/wsdl2h -c -o web.h http://172.16.23.69:8089/service/Service1.asmx?wsdl

/usr/local/arm/gsoap-linux-2.7/bin/soapcpp2 -C web.h

分享到:
评论

相关推荐

    libxml2 安装Php5时会提示缺少libxml2

    安装Php5时会提示缺少libxml2 libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH。C#, Python,Kylix/Delphi,Ruby,和PHP等。Perl中也可以使用XML::LibXML模块。...

    windows下安装 libxml2 安装包 64位

    由于在windows下玩ruby,导致安装过程中遇见个问题,这个libxml2 64位 安装包,分享都大家。我找了好长时间呢。

    python_libxml2_libxslt源代码和详细安装方法

    python_libxml2_libxslt源代码和详细安装方法

    Ubuntu11.10 libxml2-dev

    Ubuntu11.10 libxml2-dev 安装包 libxml2_2.7.8.dfsg-4_i386.deb libxml2-dev_2.7.8.dfsg-4_i386.deb python-libxml2_2.7.8.dfsg-4_i386.deb zlib1g_1.2.3.4.dfsg-3ubuntu3_i386.deb zlib1g-dev_1.2.3.4.dfsg-3...

    基于android,移植libxml2和libiconv

    最近一段时间,在android上想用c++处理xml数据,在网上找了半天资料,大多数教程都是在编译android系统的时候顺便把libxml2和libiconv源码放到系统指定路径下编译出来。可是没干过这样的事,也不想这么做。最后还是...

    linux libxml2-2.6.26

    the proper functionning of libxml2 main APIs while testapi does a full coverage check. Report failures to the list. To report bugs, follow the instructions at: http://xmlsoft.org/bugs.html A ...

    libxml2_lib安装.rar

    在linux下有个很方便的操作xml文件的库——libxml2,它提供了一套创建和查询xml文件的C语言的接口。

    libxml2-2.9.1.tar.gz

    注:先解压得到libxml2-2.9.1.tar.gz文件,然后再拷贝到linux系统中安装。 linux中具体的安装步骤如下: 1、解压:tar zxvf libxml2-2.9.1.tar.gz 2、进入解压后的安装目录:cd libxml2-2.9.1 3、安装分为以下3...

    使用mingw编译后的libxml2-2.7.7安装包

    使用mingw4.9.2编译后的libxml2-2.7.7安装包,包括lib、bin、include等

    libxml2-2.7.4库(附编译安装使用教程).zip

    如果希望处理xml的话,需要使用一个开源的库:libxml2 最开始应该根据本机的环境生成对应的库。网上搜到了一些教程,但是因为公司服务器没有权限,所以不能把库放到“/usr/lib”下,所以搜了好久“libxml2 指定其他...

    libxml2-master.zip

    libxml2是一个C语言的XML库,能简单方便的提供对XML文件的各种操作.

    libxml2-2.7.6-20.el6.x86_64.rpm

    libxml2-2.7.6-20.el6.x86_64.rpm

    libxml2生成,解析,修改xml文件

    利用libxml2生成,解析,修改xml文件示例,安装libxml2库, sudo apt-get install libxml2-dev。使用libxml2库进行xml文件的操作,取出了平台差异化,便于在不同的平台都可以进行文件的操作,不受平台系统的限制,...

    libxml2-2.9.1-6.el7.5.x86_64.rpm

    yum install 提示ImportError: libxml2.so.2: cannot open shared object file: No such file or directory,需要安装libxml2.so.2

    libxml2-2.9.0.7z

    最新libxml2库2.9.0, 新增vs2012下一键编译支持, 运行解压后目录下install2012.bat即可自动开始编译,完成后将会默认安装在系统分区libxml2.9.0目录下。 注意: 请确保vs2005/2008/2010/2012安装在系统默认目录下。

    libxml2-2.9.2_compile_20170118_1636.tar.gz

    二、安装 我在在官网提供的网址https://git.gnome.org/browse/libxml2/上下载了几个版本的.tar.gz在Ubuntu下解压以后都没有看到configure文件,然后在ftp://xmlsoft.org/libxml2/下载的版本里却有configure文件……...

    libxml2-devel-2.6.23-1.2.i386.rpm

    libxml2-devel-2.6.23-1.2.i386.rarlibxml2-devel-2.6.23-1.2.i386.rarlibxml2-devel-2.6.23-1.2.i386.rarlibxml2-devel-2.6.23-1.2.i386.rar

    libxml2-2.8.0.tar.gz

    安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)

    libxml2-2.6.32.tar.gz

    安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)

    libxml2-2.9.1最新版

    最新libxml2库2.9.1, 新增vs2013下一键编译支持, 运行解压后目录下install2013.bat即可自动开始编译,完成后将会默认安装在系统分区libxml2.9.1目录下。 注意: 请确保vs2005/2008/2010/2012/2013安装在系统默认...

Global site tag (gtag.js) - Google Analytics