Mini-XML从入门到精通系列--源码获取及安装

来源:互联网 发布:广西广电网络机顶盒ip 编辑:程序博客网 时间:2024/05/11 02:27

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 0
原创粉丝点击