发布时间:2014-09-05 17:23:20作者:知识屋
一个应用需要在linux服务器上运行,不能保证每个服务器都有应用依赖的库,又懒得每个服务器都去安装下,也不太现实,于是就将应用所用到的库全部编译为静态库,直接丢到服务器上跑吧。此为应用调用xml配置文件依赖tinyxml库示例,记录下,备忘。
1.下载tinyxml库,直接从官方下载,http://sourceforge.net/projects/tinyxml/。
2.解压缩下载好的包,我解压缩到test目录下,进入项目目录。
3.使用vim编辑器修改Makefile文件:
将其中的OUTPUT := xmltest一行修改为:OUTPUT := libtinyxml.a
将xmltest.cpp从SRCS:=tinyxml.cpp tinyxml-parser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中删除,,注释掉xmltest.o:tinyxml.h tinystr.h。因为不需要将演示程序添加到动态库中。
将${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}修改为:${AR} $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}。
保存退出。
4.执行make命令编译,即可在当前目录生成libtinyxml.a文件。
5.调用测试,当前目录新建一个test.cpp文件,内容如下:
view sourceprint?01 #include "tinyxml.h"
02 #include "tinystr.h"
03 #include <iostream>
04 using namespace std;
05
06 int main()
07 {
08 //创建一个XML的文档对象。
09 TiXmlDocument *myDocument = new TiXmlDocument("test.xml");
10 myDocument->LoadFile();
11
12 //获得根元素,即Persons。
13 TiXmlElement *RootElement = myDocument->RootElement();
14
15 //输出根元素名称,即输出Persons。
16 cout << RootElement->Value() << endl;
17
18 //获得第一个Person节点。
19 TiXmlElement *FirstPerson = RootElement->FirstChildElement();
20 //输出接点名Person
21
22 cout << FirstPerson->Value() << endl;
23 //获得第一个Person的name节点和age节点和ID属性。
24 TiXmlElement *NameElement = FirstPerson->FirstChildElement();
25 TiXmlElement *AgeElement = NameElement->NextSiblingElement();
26 TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();
27
28 //输出第一个Person的name内容,即周星星;age内容,即20;ID属性,即1。
29 cout << NameElement->FirstChild()->Value() << endl;
30 cout << AgeElement->FirstChild()->Value() << endl;
31 cout << IDAttribute->Value() << endl;
32
33 return 0;
34 }
创建test.xml文件,内容如下:
view sourceprint?01 <Persons>
02 <Person ID="1">
03 <name>周星星</name>
04 <age>20</age>
05 </Person>
06 <Person ID="2">
07 <name>白晶晶</name>
08 <age>18</age>
09 </Person>
10 </Persons>
编译当前文件,调用libtinyxml.a库:
[root@server tinyxml]# g++ -o test test.cpp ./libtinyxml.a
执行编译好的程序:
[root@server tinyxml]# ./test
Persons
Person
周星星
20
1
将编译好的test和test.xml放至另外一台没有tinyxml的库,执行成功。
以上代码在centos5.4上测试正常
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能