在OSX Mavericks上使用libjson构建

时间:2013-12-22 18:36:01

标签: xcode macos osx-mavericks libjson

我尝试过关于帖子herehere的建议无济于事。

我安装了Xcode 5.0.2,我正在编译命令行中的所有内容。在make / make install之后构建libjson,我创建了一个简单的测试文件来链接和构建它:

#include <iostream>
#include "libjson.h"

int main(int argc, const char * argv[])
{

    // insert code here...
    std::cout << "Hello, World!\n";
    JSONNode n(JSON_NODE);
    n.push_back(JSONNode("RootA", "Hello World"));
    JSONNode c(JSON_ARRAY);
    c.set_name("ArrayOfNumbers");
    c.push_back(JSONNode("", 16));
    c.push_back(JSONNode("", 42));
    c.push_back(JSONNode("", 128));
    n.push_back(c);
    std::string jc = n.write_formatted();
    std::cout << jc << std::endl;
    return 0;
}

当我尝试构建此文件时:

g++ -DNDEBUG main.cpp -ljson

我明白了:

main.cpp:17:5: error: unknown type name 'JSONNode'
    JSONNode n(JSON_NODE);
    ^
main.cpp:18:17: error: use of undeclared identifier 'JSONNode'
    n.push_back(JSONNode("RootA", "Hello World"));
                ^
main.cpp:19:5: error: unknown type name 'JSONNode'
    JSONNode c(JSON_ARRAY);
    ^
main.cpp:21:17: error: use of undeclared identifier 'JSONNode'
    c.push_back(JSONNode("", 16));
                ^
main.cpp:22:17: error: use of undeclared identifier 'JSONNode'
    c.push_back(JSONNode("", 42));
                ^
main.cpp:23:17: error: use of undeclared identifier 'JSONNode'
    c.push_back(JSONNode("", 128));

1 个答案:

答案 0 :(得分:0)

在我意识到制作过程出现问题后,找到了另一个SO question的答案。基本上,解决方案是将源代码复制到Xcode中并将其构建为项目的一部分,而不是尝试将其链接为库。

我还尝试在ubuntu机器(12.04)上构建libjson 7.6.1,尽管完美制作,但遇到了确切的问题。