ただし、再印刷する場合はソースを示してください: 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) に注目してください。