PHP编译为静态库,Linux下将Tinyxml编译为静态库
转载请注明来源: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编译为静态库相关推荐
- linux编译linphone,linphone编译(一) linux 下 无video编译
最近使用asterisk做服务器,需要兼容sip客户端,所以对linphone进行编译. 网上有很多sip phone客户端,但大部分开源的都没有支持视频部分.所以采用了linphone,不知道大家有 ...
- linux用gcc编译完怎么运行,linux下使用gcc编译运行C/C++程序
编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链接 ...
- windows和linux下源码编译7-Zip(7za)
windows和linux下源码编译7-Zip(7za) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 windows和l ...
- linux ortp 编译,Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc
Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc Linux下oSIP的编译使用应该是很简单的,其Install说明文档里也介绍的比较清楚,本文主要就oSIP在Windo ...
- 在Linux下gcc缺省编译,在Linux下用gcc编译hello world
1. 确保Linux系统里已经装好了gcc 测试:输入gcc后是如下的结果就说明已经安装成功 2. 创建HelloWorld.c 使用 touch 创建一个空文件; 用vim编辑 按下A或者I 插入 ...
- vc6可编译的 linux 源码,Linux 下源码编译FFMEG
1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...
- automake linux,Linux下automake软件编译与发布快速入门
Linux下automake软件编译与发布快速入门 2008-04-22 eNet&Ciweek 进入编辑界面,输入内容如下: AUTOMAKE_OPTIONS=foreign bin_PRO ...
- Linux下的LD_PRELOAD环境变量与库打桩
Linux下的LD_PRELOAD环境变量与库打桩 LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的 ...
- Linux下构建自己的C++共享库并配合pkg-config生成链接选项
Linux下构建自己的C++共享库并配合pkg-config生成链接选项 本文将以C++链表的新建.打印操作为例构建自己的共享库,并在实际调试代码时尝试使用.我们在做数据结构题时经常需要将链表打印出来 ...
最新文章
- 纳米孔(Oxford Nanopore)测序仪的学习笔记
- 改变2020年及未来的8大人工智能趋势
- 关于dataTables 的排序问题
- Source Insight 常用设置和快捷键大全
- boost::test模块具有自定义初始化测试的共享库使用变体
- 洛谷 P1091 合唱队型
- Win系统利用本地安全策略全面禁止360等软件的安装与运行-1
- CSS Variables
- 西南民族大学计算机考试试题,西南民族大学预科教育学院 2007级《计算机》模拟试题(含答案)...
- 第二阶段团队项目冲刺第一天
- 离散数学及其应用怎么样_有名气的冲击式移动破碎站效果怎么样?
- oracle数据库建立主键约束,数据库-Oracle主键约束和唯一索引的黑与白
- In the interview, Clem revealed that his first
- 还在用Json-lib?面对疾风吧!
- 自己动手写邮件群发助手
- matlab非单位阶跃响应,MATLAB下二阶系统的单位阶跃响应
- [Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)
- cups共享linux打印机_利用CUPS为linux安装打印服务并局域网共享
- 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏
- 15、PIC32系列-输入捕捉ICAP