Сборка с помощью 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) и столкнулся с точной проблемой, несмотря на идеальную сборку.