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.
最近一直在找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.
相关文章推荐
- ubuntu下编译和使用libxml2
- ubuntu下编译和使用libxml2
- ubuntu 下面libxml2的安装与使用--注意 -lxml2 不放置在最后编译会报错!
- ubuntu下编译和使用libxml2
- ubuntu下编译和使用libxml2
- ubuntu下编译和使用libxml2
- ubuntu下编译和使用libxml2
- wubi安装ubuntu后,增加swap大小,优化swap的使用参数-----------让ubuntu健步如飞,为编译android源码准备
- 使用ubuntu14和ndk 编译ffmpeg在android平台的so动态库
- 在Ubuntu中使用sublime text编译并运行C/C++程序
- Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1
- Ubuntu下为AndroidStudio编译并使用FFmpeg(一)ndk部分
- (待研究2--暂存)ALLJOYN 在linux(ubuntu)下的编译与使用
- Linux(Ubuntu10.04 )下libxml2的安装以及使用示例
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
- Ubuntu下函数使用“math.h"编译出现的问题
- ubuntu14.04下libvmi 编译安装使用
- (ubuntu)在andorid andk工程中使用ccache加速编译速度
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- ubuntu14编译升级 FFmpeg后命令行不能使用