2011-05-24 42 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