您好,登录后才能下订单哦!
小编给大家分享一下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 <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的库,执行成功。
以上是“Linux下将Tinyxml编译为静态库的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。