>  기사  >  백엔드 개발  >  Linux에서 Tinyxml을 정적 라이브러리로 컴파일

Linux에서 Tinyxml을 정적 라이브러리로 컴파일

黄舟
黄舟원래의
2017-02-23 14:55:221984검색

                                                                                                                           재인쇄할 때 소스를 표시하십시오. Linux

에서 Tinyxml을 정적 라이브러리로 컴파일합니다. 애플리케이션은 Linux 서버에서 실행되어야 합니다. 모든 서버에 해당 라이브러리가 있다고 보장할 수는 없습니다. 애플리케이션에 따라 달라지며 매번 컴파일하기에는 너무 게으릅니다. 모든 서버에 설치하는 것은 현실적이지 않으므로 애플리케이션에서 사용하는 모든 라이브러리를 정적 라이브러리로 컴파일하고 서버에 직접 던져 실행합니다. 이것은 xml 구성 파일을 호출하고tinyxml 라이브러리에 의존하는 응용 프로그램의 예입니다.

1. 공식 홈페이지(http://www.php.cn/)에서 Tinyxml 라이브러리를 직접 다운로드합니다.

2. 다운로드한 패키지의 압축을 풀어서 test 디렉토리에 압축을 풀고 프로젝트 디렉토리에 들어갔습니다.

3. vim 편집기를 사용하여 Makefile을 수정합니다.

OUTPUT := xmltest 줄을 다음으로 수정합니다. OUTPUT := libtinyxml.a
SRCS에서 xmltest.cpp를 변경합니다:= 삭제 tinyxml.cpptinyxml-parser.cpp xmltest.cpptinyxmlerror.cpptinystr.cpp, 주석 처리 xmltest.o:tinyxml.htinstr.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.xml을tinyxml 없이 다른 라이브러리에 넣습니다. 실행이 성공했습니다.

위 내용은 Linux에서 Tinyxml을 정적 라이브러리로 컴파일한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.