Вопрос по jsoncpp – нужна помощь в компиляции примера кода jsoncpp

1

Я пытаюсь скомпилировать пример jsoncpp, но в «стандартном» обнаружены тонны ошибок компиляции. заголовки. кто-нибудь видел это в любое время?

<code>[~]$ g++ -g -c json.cc -I/usr/local/include/json 
In file included from /usr/include/libio.h:62,
                 from /usr/include/stdio.h:75,
                 from /usr/lib/gcc/i686-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstdio:45,
                 from json.cc:1:
/usr/include/sys/cdefs.h:46:44: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:50:44: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:135:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:151:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:209:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:218:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:227:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:236:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:248:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:258:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:267:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:275:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:289:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:297:43: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:326:19: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:338:20: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:343:20: error: missing binary operator before token "("
/usr/include/sys/cdefs.h:350:19: error: missing binary operator before token "("
In file included from /usr/lib/gcc/i686-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstring:45,
                 from json.cc:2:
</code>

Ваш Ответ

5   ответов
1

#include & quot; json / json.h & quot;

1

-I/path of JSON include directoryнапример,-I$(pkg-config --cflags jsoncpp).

Этоcause проблемы: в том числе из/usr/include/jsonтак, чтобы jsoncpp 'svalue.h имеет приоритет над gccvalue.h, вызывает эти точные ошибки.
1

-I.../include/jsonтогда стандартная библиотека может случайно включить заголовок JSON. (В этом случае, по словам Ауттер, это былоfeatures.h.)

Родительский каталог является своего рода «пространством имен». для заголовочных файлов. Вот почему хорошая практика дляany библиотека с заголовками вродеincdir/foo/bar.h является-Iincdir а также#include <foo/bar.h>.

4

включенный в json-cpp, который конфликтует с системными функциями .h в некоторых других включениях. Я переименовал его локально в json_features.h в коде json-cpp, и все было хорошо.

0

что произошло бы, если бы у одного из предшествующих ему заголовков была синтаксическая ошибка, такая как отсутствие; в конце объявления класса. Начните с очистки тех.

Похожие вопросы