2015-01-08 3 views
0

저는 C++과 CMake에서 매우 새로 왔습니다.CMake : 라이브러리를 찾을 수 없습니다 -ljsoncpp

내 프로젝트에서는 jsoncpp 라이브러리를 사용하고 IDE (CLion)는 문제없이 그것을 봅니다. 여기

ld: library not found for -ljsoncpp

내 프로젝트 구조입니다 : 내가 컴파일 할 때 그러나 나는이 오류 메시지가 여기에

/ 
|-jsoncpp/ /*Here contains source code, not compiled library*/ 
| 
|-work_7/ 
| |-main.cpp 
| 
|-CMakeList.txt 

것은 CMakeList.txt 설정입니다 : 그래서 무엇을

cmake_minimum_required(VERSION 2.8.4) 
project(programming_practice) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 
set(SOURCE_FILES work_7/main.cpp) 

add_executable(programming_practice ${SOURCE_FILES}) 
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/include) 
add_subdirectory(jsoncpp) 

target_link_libraries(programming_practice jsoncpp) 

I 틀렸어? 도와주세요.

+0

"내 IDE ** 라이브러리 ** 참조"란 무엇을 의미합니까? 왜 컴파일되지 않는지 알고 있다면? BTW,'ld'는 링커입니다. jsoncpp을 컴파일 했습니까? – Drop

+0

@drop 입력 할 때 #include "IDE에서이 라이브러리를 제안합니다. –

+1

C++을 처음 사용하는 경우 [jsoncpp library block is is]이 (가) 잘못되었으므로 [biicode] (https://www.biicode.com/)를 시도 할 수 있습니다. biodeode] (https://www.biicode.com/hithwen/jsoncpp)에 업로드 했으므로 프로젝트에서 사용하기 쉽습니다.이 코드를 다시 사용하려면 http : // docs 시작하기 웹 페이지를 읽어보십시오. .biicode.com/C++/gettingstarted.html – fenix688

답변

2

문제는 jsoncpp을 사용하기 전에 라이브러리에 먼저 컴파일해야한다는 것입니다. add_subdirectory(jsoncpp)을 사용하고 컴파일 할 디렉토리에 Cmake 파일이 있는지 확인하십시오.

+0

왜 ** 동적 ** 라이브러리입니까? – Drop

+0

네, 맞습니다. 정적도 좋습니다. – qqibrow

3

또한 jsoncpp의 라이브러리가있는 위치를 지정해야합니다. 당신의 CMakeLists.txt이 추가 : S.O.에 libjsoncpp.o 또는 동등 :

link_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/lib) 

는 그 경로라는 이름의 파일이 포함 된 것이어야한다

관련 문제