C jsoncpp編譯及鏈結庫的使用

2021-08-11 05:24:00 字數 1343 閱讀 9989

1. jsoncpp介紹

(1)jsoncpp主要包含三種型別的class:value reader writer;

json::value 是jsoncpp 中最基本、最重要的類,用於表示各種型別的物件,jsoncpp 支援的物件型別可見 json::valuetype 列舉值。

json::reader 是用於讀取的,說的確切點,是用於將字串轉換為 json::value 物件的。

json::writer 類是乙個純虛類,並不能直接使用。在此我們使用 json::writer 的子類:json::fastwriter、json::styledwriter、json::styledstreamwriter。

(2)jsoncpp中所有物件、類名都在namespace json中,包含json.h即可

apt-get install scons

tar -xvzf jsoncpp-src-0.5.0.tar.gz

cd jsoncpp-src-0.5.0

scons platform=linux-gcc

gcc版本是4.6的,上面的命令執行完後,會在jsoncpp-src-0.5.0/libs/linux-gcc-4.6目錄下面生成庫檔案:

(1)libjson_linux-gcc-4.6_libmt.a

(2)libjson_linux-gcc-4.6_libmt.so

之後,將動態鏈結庫libjson_linux-gcc-4.6_libmt.so,新增到搜尋路徑中,

3.jsoncpp使用**示例

3.1 程式解析json資料

解析下面的檔案jsontext,檔案如下:

**(c.cpp):

#include "json/json.h"

#include

#include

#include

#include

using namespace std;

int main()

root["key1"] = "value1";   ///給root中新增屬性(arrayobj變為map)

root["key2"] = "value2";

root["array"] = arrayobj;

std::string out = root.tostyledstring();   ///轉換為json格式字串

std::cout << out << std::endl;

return 0; }

g++ b.cpp -i ./include/ -l./libs/linux-gcc-4.6/ -ljson_linux-gcc-4.6_libmt -o b

./b執行結果:

編譯鏈結庫的概念

預編譯 gcc e hello.c o hello.i e表示只進行預編譯,e必須大寫 編譯 gcc s hello.i o hello.s s表示只進行編譯 gcc s hello.c o hello.s 把預編譯和編譯一步執行完 彙編 gcc c hello.s o hello.o c表示彙編 ...

編譯CUDA動態鏈結庫及使用

除了直接在專案中使用cu或cuh來編寫cuda 之外,還可以將cuda相關操作 放在乙個dll專案中,將專案編譯成動態鏈結庫dll,然後在需要使用的專案中引用這個dll並呼叫其內部函式即可。現在新建乙個dll專案,專案名稱為test00302,如下圖所示 現在在專案中新建乙個名為test.cu的檔案...

linux 編譯靜態鏈結庫和動態鏈結庫

我們通常把一些公用函式製作成函式庫,供其它程式使用。函式庫分為靜態庫和動態庫兩種。靜態庫在程式編譯時會被連線到目標 中,程式執行時將不再需要該靜態庫。動態庫在程式編譯時並不會被連線到目標 中,而是在程式執行是才被載入,因此在程式執行時還需要動態庫存在。本文主要通過舉例來說明在linux中如何建立靜態...