Linux環境g 編譯TinyXML動態庫

2021-08-01 09:42:30 字數 781 閱讀 6640

除了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這一行刪除。

將 $ -o $@ $ $ $ $這一行修改為$ -o $@ $ $ $ $ -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。

Linux環境使用g 編譯C

以下述c 的編譯為例 helloworld.cpp include intmain int argc,char ar 該 可用以下命令編譯 g helloworld.cpp 編譯器 g 通過檢查命令列中指定的檔案的字尾名,可識別其為 c 源 檔案。編譯器預設的動作 編譯源 檔案生成物件檔案 obje...

Linux 環境下使用g 編譯C

下面是乙個儲存在檔案 helloworld.cpp 中乙個簡單的 c 程式的 helloworld.cpp include int main int argc,char argv 程式使用定義在標頭檔案 iostream 中的 cout,向標準輸出寫入乙個簡單的字串。該 可用以下命令編譯為可執行檔案...

Linux環境g 編譯GDAL動態庫操作方法

一 編譯步驟 解壓 的gdal源程式,並在命lerer令行中切換到解壓目錄。程式設計客棧 tar xzvf gdal 2.1.3.tar.gz cd gdal 2.1.3 gdal可通過configure來實現一些自定義配置,可通過.configure h命令來檢視。prefix path表示設定g...