


Linux下將Tinyxml編譯為靜態庫
一個應用需要在linux服務器上運行,不能保證每個服務器都有應用依賴的庫,又懶得每個服務器都去安裝下,也不太現實,于是就將應用所用到的庫全部編譯為靜態庫,直接丟到服務器 將其中的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>
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解