Linux環境g++編譯TinyXML動態庫
除了CMarkup,tinyxml也是C/C++下解析XML很好的工具。在linux下用g++編譯tinyxml的步驟如下(tinyxml版本2.6.2):
- 進入tinyxml解壓目錄,用文本編輯器打開Makefile文件。
- 修改編譯目的文件參數。將OUTPUT := xmltest改為OUTPUT := libtinyxml.so。
- 刪除測試文件。將SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中的xmltest.cpp刪除;將xmltest.o: tinyxml.h tinystr.h這一行刪除。
- 將 ${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}這一行修改為${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS} -fPIC –shared。–shared是用來生成動態庫的。-fPIC這個參數最好帶上,否則有的.so依賴這個.so時可能會出現問題,提示找不到這個.so什么的。
- 在命令行中進入Makefile目錄,執行命令:make DEBUG=YES PROFILE=NO TINYXML_USE_STL=NO。DEBUG=YES表示編譯的是debug版本,TINYXML_USE_STL=NO表示編譯非STL標本。
這樣這個動態庫就可以使用了,libtinyxml.so就生成在Makefile目錄中。但在實際使用過程中,因為本人是調用該.so生成新的.so,而不是直接使用,最后編譯時還是提示找不到libtinyxml.so,原因是編譯階段也需要-fPIC參數。解決辦法:在Makefile文件的DEBUG_CFLAGS和RELEASE_CFLAGS參數后面加上-fPIC。

浙公網安備 33010602011771號