您的位置:首页 > 其它

ubuntu下编译和使用libxml2

2011-11-29 21:25 417 查看
转载:http://www.52harry.com/program/cprogram/2011-11-04/484.html

最近一直在找ubuntu下面的东西。因为工作的需要今天找了一个解析xml的垮平台库。在网上找了找看看libxml2还不错,就打算试试。

首选在网上找说用#sudo apt-get install libxml2 这个命令就可以。我输入后得到结果是我的ubuntu上已经安装了这个库。我就在文件系统上找,发现在/usr/share/doc下面确实有一个 libxml2的文件夹,但是进里面找不到头文件。我编译在网上找的一段代码程序,发现也编译不过。后来在网上找了半天,才发现用的命令不对。后来 用#sudo apt-get install libxml2-dev 这个命令算是安装上了。所有的头文件在/usr/include/libxml2/这个文件目录下,lib文件在/usr/lib在这个下面。

下面是在网上找的一段测试linxml2库是否装上的代码。

#include <stdio.h>

#include <libxml/parser.h>

#include <libxml/tree.h>

int main(int argc, char **argv)

{

xmlDocPtr doc = NULL;

xmlNodePtr root_node = NULL, node = NULL, node1 = NULL;

doc = xmlNewDoc(BAD_CAST "1.0");

root_node = xmlNewNode(NULL, BAD_CAST "root");

xmlDocSetRootElement(doc, root_node);

xmlNewChild(root_node, NULL, BAD_CAST "node1",BAD_CAST "content of node1");

node=xmlNewChild(root_node, NULL, BAD_CAST "node3",BAD_CAST"node has attributes");

xmlNewProp(node, BAD_CAST "attribute", BAD_CAST "yes");

node = xmlNewNode(NULL, BAD_CAST "node4");

node1 = xmlNewText(BAD_CAST"other way to create content");

xmlAddChild(node, node1);

xmlAddChild(root_node, node);

xmlSaveFormatFileEnc(argc > 1 ? argv[1] : "-", doc, "UTF-8", 1);

xmlFreeDoc(doc);

xmlCleanupParser();

xmlMemoryDump();

return(0);

}

用下面的命令编译通过。

g++ xmlCreator.cpp -o xmlCreator -I /usr/include/libxml2/ -L /usr/lib -lxml2

后来我把这段代码移到Eclipse下编译。引入了头文件路径和lib文件的路径,编译的时候还是不过。后来想起来上两天在编译mysql库的时候 有一个设置。就是打开 “Project->Properties” 在弹出的窗体左面选择 "c/c++ Build ->Settings",在窗口选择"GCC C++ linker->Libraries",这时候在右面会出现两个框,一个是“Libraries(-I)”还有一个是"Library search path(-L)",因为通过命令时后面跟了一个-lxml2这个东东。所以要把这个加到"Libraries(-I)"中,这样在编译就可以编译过了。

呵呵,我的系统是ubutun9.04.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: