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

스택 오버플로에서 답을 링크하지 마십시오. 이 게시물에 솔루션의 필수 부분을 포함하십시오. – Raju