Сборка с помощью libjson на OSX Mavericks

Я попробовал совет по темам здесь и здесь безрезультатно.

У меня установлен 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 ответ

Нашел ответ от другого вопроса SO после того, как я понял, что у процесса make были проблемы. По сути, решение состоит в том, чтобы скопировать исходный код в Xcode и собрать его как часть проекта, а не пытаться связать его как библиотеку.

Я также пытался собрать libjson 7.6.1 на машине с Ubuntu (12.04) и столкнулся с точной проблемой, несмотря на идеальную сборку.

Другие вопросы по тегам