CMake:找不到库-ljsoncpp

CMake: Library not found -ljsoncpp

我是 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

这是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)

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

问题是jsoncpp在使用前需要先编译成库。 使用 add_subdirectory(jsoncpp) 并确保该目录中有 Cmake 文件用于编译。

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

link_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/lib)

该路径应包含名为 libjsoncpp.o 的文件或 S.O.

中的等效文件