在项目中需要对数据的保存与交换,为了方便期间使用普通文本保存。但对文本解析时,考虑到程序的健壮性就需要处理多种意外情况,比较麻烦,因此对xml产生了点兴趣。xml本身网站上有大把的资料,可以随时参考。

Gnome项目提供了一个xml的C解析器:Libxml2。libxml2最新提供了xmlreader接口,使用很方便,不过版本在2.6以上才支持。今天倒腾了一了下,做了下简单测试,在编译自己的小程序上被拌了一下,写文纪念。

现在的最新版本是2.6.30,可以到http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/ 下载。

安装很简单,三部走。

// install #./configure #make #make install //test install #make tests //uninstall #make uninstall

如果不需要特别的定制,在configure阶段可以直接默认。 libxml2将默认把头文件与库安装在/usr/local/include/libxml2/libxml目录下。因此可能会让你在第一次编译自己的程序时遇到头文件“no such file”的错误(比如我自己就这么笨╮(╯▽╰)╭)。

libxml2提供了解决方法,它很体贴地在/usr/local/bin目录下为您提供了xml2-config、xmlcatalog、xmllint三个便利的工具(嘀咕下:其实一点都不便利,提前给人说下多好啊,还得害人去查资料)。其中xml2-config在编译时用得到。

xml2-config可以。。。自己看下面吧

[root@Amanda ~]# xml2-config Usage: xml2-config [OPTION] Known values for OPTION are: --prefix=DIR change libxml prefix [default /usr/local] --exec-prefix=DIR change libxml exec prefix [default /usr/local] --libs print library linking information --cflags print pre-processor and compiler flags --modules module support enabled --help display this help and exit --version output version information

这里说到编译时用到的参数: --cflags和--libs,帮助上说明这个为工程编译时提供辅助。它们提供的信息如下:

[root@Amanda ~]# xml2-config --cflags -I/usr/local/include/libxml2 [root@Amanda ~]# xml2-config --libs -L/usr/local/lib -lxml2 -lz -lm

所以在编译自己的测试程序时,可以直接使用 #gcc -I /usr/local/include/libxml2 -L/usr/local/lib -lxml2 -lz -lm  -o test test.c 。

或者加入到makefile中,例如:

CFLAGS=`xml2-config --cflags`

LIBS=`xml2-config --libs`

libxml2 安装使用相关推荐

  1. freebsd php mysql_FreeBSD下Mysql5+Apache2+PHP5的安装

    ■ MySQL5 的安装 源代码:mysql-5.0.18.tar.gz 下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.18. ...

  2. 安装PHP5、PHP7

    安装 PHP5 PHP(Hypertext Preprocessor)英文超级文本预处理语言.PHP是一种HTML内嵌式的语言,是一种在服务端执行的嵌入HTML文档的脚本语言.官网:www.php.n ...

  3. linux安装PHP环境

    在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译.安装之前要准备如下安装包 ...

  4. CentOS 7 安装Apache 2.4.39

    使用源码在CentOS 7下安装 apache 2.4.39,之前趟了一遍,简单做个笔记. STEP 1 安装apr STEP 1.1 检查是否安装apr [root@study ~]# yum li ...

  5. python2.7安装scrapy_python 2.7 的Scrapy安装介绍

    一. Scrapy简介 Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl we ...

  6. libxml2交叉编译问题及解决办法

    libxml2安装中出现的错误:cannot remove `libtoolT': No such file or directory解决方法: 修改configure文件 $ vim configu ...

  7. redhat5.4 安装mysql_RedHat5.4搭建LAMP

    环境准备: 我的环境:Red Hat Enterprise Linux Server release 5.4 所需软件包: apr-1.4.6.tar.gz httpd-2.4.2.tar.bz2 p ...

  8. CentOS 安装meld

    安装meld只要两步: 1.安装EPEL yum源 命令:sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-lat ...

  9. 使用Libxml2操作XML文档

    一.Libxml2介绍: Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件.它除了支持c语言版以外,还支持c++.PHP ...

最新文章

  1. Linux常用命令学习(shell 脚本)
  2. nginx不记录指定文件类型的日志
  3. Boost:alignment对齐的测试程序
  4. DCMTK:可加载的DICOM数据字典
  5. Win10添加或删除开机自启项
  6. 微机原理实验8254计算机钢琴,GitHub - SincereXIA/PianoMFC: 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC...
  7. python迭代对象_Python迭代对象与迭代器
  8. PyTorch小案例二
  9. Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(Can not deserialize value of type Date from String)
  10. Scrapy操作浏览器获取网易新闻数据
  11. 极大似然估计_一文理解机器学习中的极大似然估计(MLE)
  12. OpenCV之模板匹配案例
  13. cv/dl/cl领域的实验室官网/牛人主页/技术论坛/比赛数据库/好玩的东西
  14. java @around_正确理解Spring AOP中的Around advice
  15. 19C环境ORA-01035登陆报错处理
  16. 如何在iPhone手机里创建网页快捷方式图标(Web Clip)
  17. 如何使用计算机cct证考试系统,全国高等学校计算机考试证书(cct)在哪里可以查询...
  18. 关于刷新网页F5,Ctrl+F5amp;amp;Shift+F5
  19. MAC Foxmail升级后邮件搜索功能失效了
  20. 登录oa系统输入服务器地址,oa请输入服务器地址

热门文章

  1. ERROR tool.ExportTool: Error during export: Export job failed!错误解析
  2. kermit的安装、配置、使用 .
  3. IOS pickerView 使用
  4. Eclipse字体大小设置的5个步骤
  5. 100ms的延迟让亚马逊损失1%销量,如何快速降低网站延迟?
  6. 小米10获取root权限_小米手机怎么才能完美ROOT-开发版稳定版通用
  7. csdn的,精彩连载!
  8. [linux] unzip
  9. 施工工地考勤防作弊通道系统,建筑工地通道系统管理方案
  10. 大学生java 实训总结