Linux で Tinyxml を静的ライブラリにコンパイルする

黄舟
リリース: 2017-02-23 14:55:22
オリジナル
1986 人が閲覧しました

ただし、再印刷する場合はソースを示してください: Tinyxml を Linux で静的ライブラリにコンパイルします

アプリケーションは Linux サーバー上で実行する必要があります すべてのサーバーにアプリケーションが依存するライブラリがあることは保証できません。すべてのサーバーにインストールするのはあまり現実的ではないので、アプリケーションで使用されるすべてのライブラリを静的ライブラリにコンパイルし、それらをサーバーに直接スローして実行します。 tinyxmlライブラリを利用したxml設定ファイルを呼び出すアプリケーションの例をメモとして記録します。

1. 公式 Web サイト http://www.php.cn/ から 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 なしで別のライブラリに置くと、実行は成功します。

上記は、Linux 上で Tinyxml を静的ライブラリにコンパイルする内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート