libxml2的编译与安装
来源:互联网 发布:星际淘宝网最新章节 编辑:程序博客网 时间:2024/05/21 23:18
Libxml2是个C语言的XML程式库,能简单方便的提供对XML文件的各种操作,并且支持XPATH查询,及部分的支持XSLT转换等功能。Libxml2的下载地址是
http://xmlsoft.org/
,完全版的库是开源的,并且带有例子程式和说明文件。最佳将这个库先下载下来,因为这样能查看其中的文件和例子。
由于我是在linux下用C语言进行研发的,所以我下载的是libxml2-2.6.20.tar.gz版本的源码包。
具体安装步骤:
解压:$tar zxvf libxml2-2.6.20.tar.gz
进入解压后的安装目录:$cd libxml2-2.6.20
安装三部曲:1 )$./configure
2 ) $make
3 ) $make install
安装完毕。
2.libxml资料查询
关于libxml库的相关头文件和API在这里我就不介绍了,内容太多,可以参考相关资料,进入libxml官方网站:http://xmlsoft.org/。
3.一个简单程序的编译
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<libxml/xmlmemory.h>#include<libxml/parser.h>int main(){ xmlDocPtr doc=xmlNewDoc(BAD_CAST"1.0"); xmlNodePtr root_node=xmlNewNode(NULL,BAD_CAST"root"); xmlDocSetRootElement(doc,root_node); xmlNewTextChild(root_node,NULL,BAD_CAST "newNode1",BAD_CAST "newNode1 content"); xmlNewTextChild(root_node,NULL,BAD_CAST "newNode2",BAD_CAST "newNode2 content"); xmlNewTextChild(root_node,NULL,BAD_CAST "newNode3",BAD_CAST "newNode3 content"); xmlNodePtr node=xmlNewNode(NULL,BAD_CAST "node2"); xmlNodePtr content=xmlNewText(BAD_CAST "NODE CONTENT"); xmlAddChild(root_node,node); xmlAddChild(node,content); xmlNewProp(node,BAD_CAST "attribute",BAD_CAST "yes"); node=xmlNewNode(NULL,BAD_CAST "son"); xmlAddChild(root_node,node); xmlNodePtr grandson=xmlNewNode(NULL,BAD_CAST "grandson"); xmlAddChild(node,grandson); xmlAddChild(grandson,xmlNewText(BAD_CAST "This is a grandson node")); int nRel=xmlSaveFile("CreatedXml.xml",doc); if(nRel!=-1) { xmlFreeDoc(doc); return 1; }}
[nigelzeng@myhost xml-learning]$ gcc -o xml-build xml-build.c
xml-build.c:4:30: libxml/xmlmemory.h: 没有那个文件或目录
xml-build.c:5:27: libxml/parser.h: 没有那个文件或目录
xml-build.c:8: error: syntax error before "doc"
xml-build.c: In function `parseStory':
xml-build.c:9: error: `xmlChar' undeclared (first use in this function)
xml-build.c:9: error: (Each undeclared identifier is reported only once
xml-build.c:9: error: for each function it appears in.)
……
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
[nigelzeng@myhost xml-learning]$ ln -s /usr/include/libxml2/libxml /usr/include/libxml
[nigelzeng@myhost xml-learning]$ gcc -o xml-build xml-build.c
/tmp/cc62WqCk.o(.text+0x24): In function `parseStory':
: undefined reference to `xmlStrcmp'
/tmp/cc62WqCk.o(.text+0x3e): In function `parseStory':
: undefined reference to `xmlNodeListGetString'
/tmp/cc62WqCk.o(.text+0x62): In function `parseStory':
: undefined reference to `xmlFree'
/tmp/cc62WqCk.o(.text+0x85): In function `parseDoc':
: undefined reference to `xmlParseFile'
/tmp/cc62WqCk.o(.text+0xb7): In function `parseDoc':
: undefined reference to `xmlDocGetRootElement'
/tmp/cc62WqCk.o(.text+0xe4): In function `parseDoc':
: undefined reference to `xmlFreeDoc'
/tmp/cc62WqCk.o(.text+0xff): In function `parseDoc':
: undefined reference to `xmlStrcmp'
/tmp/cc62WqCk.o(.text+0x127): In function `parseDoc':
: undefined reference to `xmlFreeDoc'
/tmp/cc62WqCk.o(.text+0x14e): In function `parseDoc':
: undefined reference to `xmlStrcmp'
/tmp/cc62WqCk.o(.text+0x17c): In function `parseDoc':
: undefined reference to `xmlFreeDoc'
collect2: ld returned 1 exit status
[nigelzeng@myhost xml-learning]$ gcc -o xml-build xml-build.c -I/usr/include/libxml2/ -lxml2
- libxml2的编译与安装
- libxml2 交叉编译-安装
- ubuntu12.04 安装libxml2 使用libxml2编译
- ubuntu 下面libxml2的安装与使用--注意 -lxml2 不放置在最后编译会报错!
- centos安装libxml2时编译出错
- Libxml2 编译
- linux下libxml2的安装
- libxml2的安装和使用
- libxml2的安装及使用
- libxml2的安装及使用
- libxml2的安装及使用
- Libxml2库的编译和使用
- Libxml2库的编译和使用
- Libxml2库的编译和使用
- 交叉编译arm平台的libxml2
- 坑爹的libxml2 for mingw 编译
- Libxml2库的编译和使用
- Libxml2库的编译和使用
- NYOJ 查找字符串
- tiff和geotiff格式分析
- uva301 - Transportation
- maven pom.xml文件说明
- (转)Android monkey 资料(android暴力测试)
- libxml2的编译与安装
- oracle使用快照和触发器同步数据
- python os.path模块
- jdk的安装和tomcat的配置
- Java Swing中两种设置背景图(容器图片)
- discuz!x2.5登录管理面板
- hdu 3037 Saving Beans
- (转)Android的monkey测试
- maven Repository Configuration