libxml安装
发布日期:2022-02-24 11:36:04
浏览次数:8
分类:技术文章
本文共 2914 字,大约阅读时间需要 9 分钟。
[size=medium][color=blue]1.PC机环境的安装[/color][/size] 下载安装包: 到官方网站下载安装包,网址: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目录下会产生四个目录,编译成功。 [size=medium][color=blue]ARM交叉编译、移植[/color][/size] 删除之前的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所需的环境。 [color=blue][size=medium]gsoap生成需要的头文件[/size][/color]
#!/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
转载地址:https://blog.csdn.net/iteye_17609/article/details/82066604 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月30日 14时42分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
安卓开发入门教程-UI控件_ProgressBar
2019-04-26
安卓开发入门教程-UI控件_RecyclerView
2019-04-26
安卓开发入门教程-Activity
2019-04-26
安卓开发入门教程-Fragment
2019-04-26
安卓开发入门教程-常用工具_Toast
2019-04-26
安卓开发入门教程-常用工具_Log
2019-04-26
安卓开发入门教程-通过WebView打开网页
2019-04-26
安卓开发入门教程-通过MediaPlayer播放音频
2019-04-26
安卓中如何实现左滑菜单
2019-04-26
安卓流式布局FlowLayout样例
2019-04-26
Kotlin打印方法执行耗时
2019-04-26
Unity 之 UGUI Button按钮组件详解
2019-04-26
超实用的浏览器插件:永久去除站内广告
2019-04-26
C#设计模式 之 单例模式
2019-04-26
C# 之 概率随机数
2019-04-26
Unity 之 贝塞尔曲线介绍和实际使用
2019-04-26
程序人生 -- 致已经逝去2020
2019-04-26
C#设计模式 之 设计模式概述
2019-04-26
Unity 之 实现老虎机滚动抽奖效果
2019-04-26
Unity 之 制作翻牌效果
2019-04-26