我对 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)
那我做错了什么?请帮我。
您还需要指定库所在的jsoncpp位置。将此添加到您的CMakeLists.txt:
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/lib)
Run Code Online (Sandbox Code Playgroud)
该路径应该是包含名为的文件的路径:libjsoncpp.o或您的 SO 中的等效文件