Как использовать разделяемую библиотеку (в данном случае JsonCpp) в моей программе на C ++ в Linux? - PullRequest
2 голосов
/ 26 апреля 2010

Я новичок в программировании на C ++, и я делаю свою первую программу самостоятельно, используя C ++. Я решил, что хотел бы использовать JSON для хранения некоторых данных, которые я собираюсь использовать, и нашел библиотеку для обработки JSON, JsonCpp .

Я установил библиотеку с помощью менеджера пакетов моей системы Linux, и в своем коде C ++ я использовал в своем файле исходного кода

#include <json>

и скомпилировал его, используя g ++ и параметры -ljson и -L / usr / lib (libjson.so находится в /usr/lib).

Однако, первое использование Json :: Value, объекта, предоставленного библиотекой, выдает ошибку компиляции «Json не объявлен». Я уверен, что моя ошибка в чем-то простом, поэтому кто-то может объяснить, что я делаю неправильно? Ни в одной из книг, в которых я упоминал, как пользоваться общими библиотеками, поэтому мне пришлось поискать в Google.

РЕДАКТИРОВАТЬ: g ++ с параметром -E выдает эту ошибку:

json: нет такого файла или каталога.

Ответы [ 3 ]

4 голосов
/ 27 апреля 2010

Я проверил список файлов JsonCPP:

include/json/autolink.h [code]  
include/json/config.h [code]    
include/json/features.h [code]  
include/json/forwards.h [code]  
include/json/json.h [code]  
include/json/reader.h [code]    
include/json/value.h [code] 
include/json/writer.h [code]

Попробуйте #include <json/json.h>, если заголовки установлены в /usr/include. Если они установлены где-то еще, укажите этот путь с -I

g++ -I/my/lib/include -L/my/lib/lib -lmylib mysource.cpp
0 голосов
/ 26 апреля 2010

Эта ошибка почти наверняка подразумевает, что у вас нет #include в реальном исходном файле, который получает ошибку.

использовать

 g++ -E [whatever other options]

увидеть вывод cpp было бы одним из способов проверить и посмотреть, что вы на самом деле включили.

Может помочь, если вы вставите сообщение об ошибке; Ваш комментарий предполагает ошибку в #include, но ваш вопрос предлагает что-то еще.

0 голосов
/ 26 апреля 2010

Вы также сказали g ++, где искать заголовочные файлы через -I - это было бы моим предположением в проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...