CMake:找不到库-ljsoncpp

Pet*_*ila 1 c++ cmake

我对 C++ 和 CMake 非常陌生。

在我的项目中,我使用jsoncpp库,我的 IDE(CLion) 看到它没有任何问题。但是,当我尝试编译它时,我收到此错误消息:

ld: library not found for -ljsoncpp

这是我的项目结构:

/
|-jsoncpp/  /*Here contains source code, not compiled library*/
|
|-work_7/
|  |-main.cpp
|
|-CMakeList.txt
Run Code Online (Sandbox Code Playgroud)

这是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)
Run Code Online (Sandbox Code Playgroud)

那我做错了什么?请帮我。

Dan*_*iel 5

您还需要指定库所在的jsoncpp位置。将此添加到您的CMakeLists.txt

link_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/lib)
Run Code Online (Sandbox Code Playgroud)

该路径应该是包含名为的文件的路径:libjsoncpp.o或您的 SO 中的等效文件