minixml的使用

转载:https://blog.csdn.net/bbzhaohui/article/details/71512599(详细阅读)

yuan@ubuntu:~/smb/mxml-2.12$ ./testmxml test.xml 报错的话
./testmxml: error while loading shared libraries: libmxml.so.1: cannot open shared object file: No such file or directory

	这个问题是没有配置环境变量LD_LIBRARY_PATH=/usr/local/lib
	使用export LD_LIBRARY_PATH=/usr/local/lib
	<div class="htmledit_views" id="content_views">

1.源码获取路径:

http://michaelrsweet.github.io/mxml/

可以直接下载.tar.gz包解压安装,或者直接通过github fork到自己的仓库,git到自己本地安装,关于github和git源码在下篇中再讲,现在讲解如何通过.tar.gz包安装。

现假定你已获取源码包并已成功放入到虚拟机Ubuntu目录下。

关于如何把文件从window传到虚拟机安装的系统中,可自行百度,或者有必要的话,下次再开篇博文。

2.首先解压mxml-2.10.tar.gz文件:

tar -xzvf mxml-2.10.tar.gz 

3.编译安装

进入到解压后的文件目录:

  • 设置环境./configure
  • 编译make
  • 安装 make install     注意root权限才可以安装,否则会提示权限不够     sudo make install

以上步骤顺利完成后,mini_xml库就已经安装到你的Linux系统中了。

以后就可以直接调用头文件 #include "mxml.h"使用了。


4.编译自带测试程序

下面用源码中自带的测试程序,先了解下大致功能

源码中有一个testmxml.c的文件就是测试程序,现编译成可执行文件

gcc -o testmxml testmxml.c

提示错误:

testmxml.c:(.text+0x1655):对‘mxmlSAXLoadFile’未定义的引用

/tmp/cc9KVjbn.o:在函数‘type_cb’中:

testmxml.c:(.text+0x1827):对‘mxmlElementGetAttr’未定义的引用

collect2: error: ld returned 1 exit status

动态链接库未在编译时链接进去,修改

gcc -o testmxml testmxml.c -lmxml 

再编译:

//usr/local/lib/libmxml.so:对‘pthread_getspecific’未定义的引用

//usr/local/lib/libmxml.so:对‘pthread_key_create’未定义的引用

//usr/local/lib/libmxml.so:对‘pthread_once’未定义的引用

//usr/local/lib/libmxml.so:对‘pthread_setspecific’未定义的引用

//usr/local/lib/libmxml.so:对‘pthread_key_delete’未定义的引用

collect2: error: ld returned 1 exit status

还是有错误,看提示信息是pthread线程相关动态库未链接进来,继续修改

gcc -o testmxml testmxml.c -lmxml -lpthread

这次便编译成功了

5.运行

./testmxml

提示信息:

Usage: testmxml filename.xml [string-output.xml]

说明输入参数需要有一个.xml文件,或者一个可选的输出.xml文件。

第一个文件必须要在testmxml同一目录下存在

如在源程序中已经存在一份test.xml文件

重新运行:

./testmxml test.xml

就会把test.xml文件中的内容显示出来了。

如果运行:

./testmxml test.xml testnew.xml

就会把test.xml文件中的内容复制到testnew.xml文件中,同时会显示在界面上。

今天就先讲解到此,下一次就详细讲解如何实现一个最简单的xml文件解析程序。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值