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
库的位置。将此添加到您的CMakeLists.txt
:
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/lib)
该路径应该是包含名为:libjsoncpp.o
的文件或 S.O 中的等效文件的路径。
问题是你需要先将 jsoncpp 编译到库中,然后再使用它。使用 add_subdirectory(jsoncpp)
并确保该目录中有 Cmake 文件进行编译。
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++系统找不到指定的文件错误
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- vcpkg 添加新库,但找不到
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- CMake:找不到库 -ljsoncpp