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中如何建立靜態...