转载请注明来源:Linux下将Tinyxml编译为静态库

一个应用需要在linux服务器上运行,不能保证每个服务器都有应用依赖的库,又懒得每个服务器都去安装下,也不太现实,于是就将应用所用到的库全部编译为静态库,直接丢到服务器上跑吧。此为应用调用xml配置文件依赖tinyxml库示例,记录下,备忘。

1.下载tinyxml库,直接从官方下载,http://www.php.cn/。

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

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

02

03 周星星

04 20

05

06

07 白晶晶

08 18

09

10

编译当前文件,调用libtinyxml.a库:[root@server tinyxml]# g++ -o test test.cpp ./libtinyxml.a

执行编译好的程序:[root@server tinyxml]# ./test

Persons

Person

周星星

20

1

将编译好的test和test.xml放至另外一台没有tinyxml的库,执行成功。

以上就是Linux下将Tinyxml编译为静态库 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

PHP编译为静态库,Linux下将Tinyxml编译为静态库相关推荐

  1. linux编译linphone,linphone编译(一) linux 下 无video编译

    最近使用asterisk做服务器,需要兼容sip客户端,所以对linphone进行编译. 网上有很多sip phone客户端,但大部分开源的都没有支持视频部分.所以采用了linphone,不知道大家有 ...

  2. linux用gcc编译完怎么运行,linux下使用gcc编译运行C/C++程序

    编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链接 ...

  3. windows和linux下源码编译7-Zip(7za)

    windows和linux下源码编译7-Zip(7za) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 windows和l ...

  4. linux ortp 编译,Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc

    Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc Linux下oSIP的编译使用应该是很简单的,其Install说明文档里也介绍的比较清楚,本文主要就oSIP在Windo ...

  5. 在Linux下gcc缺省编译,在Linux下用gcc编译hello world

    1. 确保Linux系统里已经装好了gcc 测试:输入gcc后是如下的结果就说明已经安装成功 2. 创建HelloWorld.c 使用 touch 创建一个空文件; 用vim编辑 按下A或者I 插入 ...

  6. vc6可编译的 linux 源码,Linux 下源码编译FFMEG

    1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...

  7. automake linux,Linux下automake软件编译与发布快速入门

    Linux下automake软件编译与发布快速入门 2008-04-22 eNet&Ciweek 进入编辑界面,输入内容如下: AUTOMAKE_OPTIONS=foreign bin_PRO ...

  8. Linux下的LD_PRELOAD环境变量与库打桩

    Linux下的LD_PRELOAD环境变量与库打桩 LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的 ...

  9. Linux下构建自己的C++共享库并配合pkg-config生成链接选项

    Linux下构建自己的C++共享库并配合pkg-config生成链接选项 本文将以C++链表的新建.打印操作为例构建自己的共享库,并在实际调试代码时尝试使用.我们在做数据结构题时经常需要将链表打印出来 ...

最新文章

  1. 纳米孔(Oxford Nanopore)测序仪的学习笔记
  2. 改变2020年及未来的8大人工智能趋势
  3. 关于dataTables 的排序问题
  4. Source Insight 常用设置和快捷键大全
  5. boost::test模块具有自定义初始化测试的共享库使用变体
  6. 洛谷 P1091 合唱队型
  7. Win系统利用本地安全策略全面禁止360等软件的安装与运行-1
  8. CSS Variables
  9. 西南民族大学计算机考试试题,西南民族大学预科教育学院 2007级《计算机》模拟试题(含答案)...
  10. 第二阶段团队项目冲刺第一天
  11. 离散数学及其应用怎么样_有名气的冲击式移动破碎站效果怎么样?
  12. oracle数据库建立主键约束,数据库-Oracle主键约束和唯一索引的黑与白
  13. In the interview, Clem revealed that his first
  14. 还在用Json-lib?面对疾风吧!
  15. 自己动手写邮件群发助手
  16. matlab非单位阶跃响应,MATLAB下二阶系统的单位阶跃响应
  17. [Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)
  18. cups共享linux打印机_利用CUPS为linux安装打印服务并局域网共享
  19. 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏
  20. 15、PIC32系列-输入捕捉ICAP

热门文章

  1. [Share]10 Free EBooks for Web Designers
  2. BCH或将在年底超越ETH
  3. gitlab安装配置、备份恢复
  4. 数据结构及算法基础--优先队列(Priority Queue)
  5. Python Tkinter小试
  6. Java对象的内存模型
  7. solr4.5分组查询、统计功能介绍
  8. 职场5年经验的工程师论述linux真没那么难
  9. Linux 创建用户分配文件夹权限
  10. linux expr命令