• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Ubuntu12.4.04下libxml2的安装和使用

mysql 搞代码 4年前 (2022-01-09) 43次浏览 已收录 0个评论

关于libxml2库的详细信息的查看方法请查看: http://blog.gaodaima.com/wangkai_123456/article/details/25710971 libxml2库的安装方法: sudo apt-get install libxml2 sudo apt-get install libxml2-dev 利用以上命令安装完软件包后可以利用以下命令来查看软件

关于libxml2库的详细信息的查看方法请查看:http://blog.gaodaima.com/wangkai_123456/article/details/25710971


本文来源gao!%daima.com搞$代*!码9网(

libxml2库的安装方法:

sudo apt-get install libxml2

sudo apt-get install libxml2-dev

利用以上命令安装完软件包后可以利用以下命令来查看软件包的状态(确定是否安装成功)

dpkg -s libxml2-dev

也可以用如下命令(得到的结果是一样的):

dpkg-query -s libxml2-dev


软件安装好后,默认情况下,libxml2对应的头文件均放置在/usr/include/libxml2/libxml目录下,这一信息可利用如下两个命令查看(任一命令都能查看到相关信息)

dpkg -L libxml2-dev

xml2-config –cflags


libxml2的库文件放置在/usr/lib/i386-linux-gnu目录下,这一信息可利用如下两个命令查看(任一命令都能查看到相关信息

dpkg -L libxml2-dev

xml2-config –libs


对应libxml2有一个工具,名字为xml2-config,xml2-config所在的目录为/usr/bin,其实这是一个shell脚本,关于xml2-config的详细信息可以通过如下命令来查看

man xml2-config


安装后libxml2库后,就可以开始进行基于libxml2库的开发了。现有以下一段程序,程序文件名为CreateXmlFile.c,是基于libxml2库开发的。代码如下

/**********************************created: 2014/05/12filename: CreateXmlFile.cauther: wang kaidepend: libxml2.libpurpose: 创建一个xml文件**********************************/#include#include#includeint main(int argc, char **argv){	//Define document pointer	xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");    //Define node pointer	xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"root");	//Set the root element of the document	xmlDocSetRootElement(doc,root_node);	//Create child nodes directly in the root node	xmlNewTextChild(root_node,NULL,BAD_CAST"newnode1",BAD_CAST"newnode1 content");	xmlNewTextChild(root_node,NULL,BAD_CAST"newnode2",BAD_CAST"newnode2 content");	//Create a new node	xmlNodePtr node = xmlNewNode(NULL,BAD_CAST"node2");	//Create a new text node	xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT");	//Add a new node to parent	xmlAddChild(root_node,node);	xmlAddChild(node,content);	//Create a new property carried by a node	xmlNewProp(node,BAD_CAST"attribute",BAD_CAST"yes");	//Create a son and grandson node element	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"));		//Dump an XML document to a file	int nRel = xmlSaveFile("CreatedXml.xml",doc);	if(nRel != -1)		printf("一个xml文档被创建,写入 %d 个字节\n",nRel);		//Free up all the structures used by a document,tree included	xmlFreeDoc(doc);	//printf("Hello World!\n");	return 0;}

对这个程序进行编译时,可用以下命令

gcc -I/usr/include/libxml2 CreateXmlFile.c -o CreateXmlFile-L /usr/lib/i386-linux-gnu -lxml2

其中,-I参数是为了指定gcc编译器查找头文件的路径,-L参数是为了指定libxml2库文件所在的路径,最后的

-lxml2指定具体的库文件。(-lxml2一定要放在命令的最后位置,不然会出现找不到链接库的错误,如下图所示)


具体为什么一定要把-lxml2放在最后的位置,本人目前还没弄明白,有待进一步研究

编译命令也可以写成如下形式:

gcc `xml2-config –cflags` -L /usr/lib/i386-linux-gnu CreateXmlFile.c -o CreateXmlFile -lxml2

gcc `xml2-config –cflags` CreateXmlFile.c -o CreateXmlFile-L /usr/lib/i386-linux-gnu -lxml2

gcc CreateXmlFile.c -o CreateXmlFile `xml2-config –cflags –libs`

形式虽然不一样,其实命令的实际内容是一样的。因为命令xml2-config –cflags的执行结果为

-I/usr/include/libxml2 (指明include头文件所在的目录)

命令xml2-config –libs的执行结果为

-L/usr/lib/i386-linux-gnu -lxml2 (指明libxml2库文件所在的目录以及具体的库文件)

(不管写成何种形式,只要保证 -lxml2 在编译命令的最后位置即可)




搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Ubuntu12.4.04下libxml2的安装和使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址