2011-05-24 41 views
0

與Eclipse編譯簡單jsoncpp程序的文件是在該位置的/ home/shivang /桌面和文件名是下面的文件sh1.cpp 下面的源代碼無法在Linux上

#include iostream 
#include json/json.h 
#include json/reader.h 

using namespace std; 
using namespace Json; 

int main() { 
    std::string example = "{\"array\":[\"item1\", \"item2\"], \"not an array\":\"asdf\"}"; 
    Value value; 
    Reader reader; 

    bool parsed = reader.parse(example, value, false); 
    std::cout << parsed; 

    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! 
    return 0; 
} 

給出顯示錯誤消息。

/home/shivang/Desktop/sh1.cpp: In function ‘int main()’: 
/home/shivang/Desktop/sh1.cpp:10:2: error: ‘Value’ was not declared in this scope 
/home/shivang/Desktop/sh1.cpp:10:8: error: expected ‘;’ before ‘value’ 
/home/shivang/Desktop/sh1.cpp:11:2: error: ‘Reader’ was not declared in this scope 
/home/shivang/Desktop/sh1.cpp:11:9: error: expected ‘;’ before ‘reader’ 
/home/shivang/Desktop/sh1.cpp:13:16: error: ‘reader’ was not declared in this scope 
/home/shivang/Desktop/sh1.cpp:13:38: error: ‘value’ was not declared in this scope 

配置gcc版本4.5.2(Ubuntu的/ Linaro的4.5.2-8ubuntu4) jsoncpp-SRC-0.5.0 Eclipse的CPP-赫利俄斯-SR2-Linux的GTK

+0

一些谷歌搜索顯示dat dis可能是一個鏈接器的問題,我不得不在編譯時添加一個共享庫。/workspace/hello/src $ g ++ hello.cpp -l libjson_linux-gcc-4.5.2_libmt.so -L/usr/lib/usr/bin/ld:找不到-llibjson_linux-gcc-4.5.2_libmt.so但是文件位於指定的文件夾中。這是一個權限問題? – 2011-05-26 05:59:58

回答

0

我從來沒有之前使用過Json或C++。但是一點點搜索導致我到this page。我認爲添加以下行到你的包括列表應該有幫助:

#include <json/value.h> 
+0

我實現了你所說的,但我仍然得到相同的錯誤。你確定這不是一個鏈接器問題。 – 2011-05-26 05:02:43

+0

一些谷歌搜索顯示dat dis可能是一個鏈接器的問題,我不得不在編譯時添加一個共享庫。/workspace/hello/src $ g ++ hello.cpp -l libjson_linux-gcc-4.5.2_libmt.so -L/usr/lib/ /usr/bin/ld:找不到-llibjson_linux-gcc-4.5.2_libmt.so但是該文件位於指定的文件夾中。這是一個權限問題? – 2011-05-26 05:57:34

+0

顯然,從這裏不能告訴。我假設你的項目設置很好。你可以讀取「這樣」的文件嗎?當你對該文件執行'ls -l'時會發生什麼?我提到的鏈接也有一步一步教程如何開始。你能確保你遵循了所有的步驟嗎? – 2011-05-26 07:42:57