1.源码获取路径:
可以直接下载.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.编译安装
进入到解压后的文件目录:
以上步骤顺利完成后,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文件解析程序。