CMake:找不到库 -ljsoncpp

CMake: Library not found -ljsoncpp

本文关键字:-ljsoncpp 找不到 CMake      更新时间:2023-10-16

我对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库的位置。将此添加到您的CMakeLists.txt

link_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/lib)

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

问题是你需要先将 jsoncpp 编译到库中,然后再使用它。使用 add_subdirectory(jsoncpp) 并确保该目录中有 Cmake 文件进行编译。