2012-12-17 77 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