2012-12-17 2 views
1

Я новичок в cmake. Это сработало очень хорошо, но теперь я получаю некоторые ошибки связывания:ошибка связи jsoncpp cmake

undefined reference to `Json::Reader::Reader()' 
undefined reference to `Json::Value::Value(Json::ValueType)' 
undefined reference to `Json::Reader::parse(std::basic_istream<char, std::char_traits<char> >&, Json::Value&, bool)' 
undefined reference to `google::protobuf::MessageLite::ParseFromArray(void const*, int)' 

и еще некоторые из этого типа.

Я думаю, что я должен добавить библиотеку jsoncpp где-нибудь.

Кто-то здесь с идеей, как это сделать?

ответ

2
target_link_libraries(your_exe_target_name jsoncpp) 

Убедитесь, что вы настроили link_directories() заранее.

+1

['link_directories'] (http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:link_directories) не является хорошим способом предоставления путей к CMake - его собственная документация обескураживает его использование. Лучше использовать ['find_library'] (http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_library) и передать полный путь в' target_link_libraries' – Fraser

+0

Да, вы правильно. Я забыл об этом. – arrowd

1

Вы можете рассмотреть возможность использования https://github.com/nlohmann/json

Он поставляется в виде одного файла .hpp, что вам просто нужно скачать, положить в источниках вашего проекта, а затем включить в файл заголовка, если вы хотите использовать Это.

Затем он скомпилирован и связан как любой другой исходный файл вашего проекта, нет необходимости в какой-либо специальной конфигурации CMake!

Плюс это отличная библиотека для JSON, которая очень проста в использовании.

+0

Свяжите только ответы, не поощряемые к stackoverflow. Пожалуйста, включите основные части решения в эту должность – Raju

Смежные вопросы