c++ - 无法包含 Clion 库中的文件

标签 c++ json cmake clion

我一直在尝试为学校项目包含现代 C++ ( GitHub page ) 库的 JSON。自述文件的集成部分要求用户向将使用该库的 .cpp 文件添加一行简单的代码。然而,这些行提供了一个错误,因为在包含的文件中,设计者使用#include <>包含了其他文件。我正在使用 Clion,它使用 Cmake。我目前无法运行该程序,除非收到以下错误消息:

fatal error: nlohmann/json.hpp: No such file or directory
#include <nlohmann/json.hpp>

我的代码如下:

#include <nlohmann/json.hpp>

// for convenience
using json = nlohmann::json;

我的Cmake:

cmake_minimum_required(VERSION 3.8)
project(assingment_5)

set(CMAKE_CXX_STANDARD 11)

include_directories( CMAKE_CURRENT_SOURCE_DIR/nlohmann)

set(SOURCE_FILES main.cpp sample Item.cpp Item.h)
add_executable(assingment_5 ${SOURCE_FILES})

nlohmann 文件夹位于项目的根目录内


更新:

谢谢大家的回答。

@Justin 已经解决了 CMake 问题(在评论中完成修复)。我知道有多种方法可以解决这个问题,但这是我选择的一种。

新的 CMakeLists.txt 现在看起来像:

cmake_minimum_required(VERSION 3.8)
project(assingment_5)

set(CMAKE_CXX_STANDARD 11)
set(SOURCE CMAKE_SOURCE_DIR)

#[[include_directories(${PROJECT_SOURCE_DIR})   <------ works as well]]

set(SOURCE_FILES main.cpp sample Item.cpp Item.h)
add_executable(assingment_5 ${SOURCE_FILES})

target_include_directories(assingment_5 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

最佳答案

为了简单起见,我开始像这样使用该 header :

我的当前目录中有一个标题,它构成了一个简单的 CMakeLists.txt。毕竟,我只是想探索图书馆

enter image description here

enter image description here

现在您可以像这样使用所描述的 using 声明并关闭并运行。

enter image description here

关于c++ - 无法包含 Clion 库中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579680/

相关文章:

c++ - 从二进制文件中读取 Int

c++ - 使用计数器模式用 SHA256 加密数据是否聪明?

c++ - 无法打印 Iterator 中存储的内容

jquery - 如何创建子子菜单?

javascript - Facebook Graph API 缓存 JSON 响应

opencv - 将 OpenCV 构建为 deb 包 : CPackDeb: file utility is not available

c++ - Windows Mobile 项目的 winnt.h、winbase.h 和 excpt.h 编译错误

r - 将循环拆分为子循环

CMake 生成器表达式和 CONFIG 变量查询

CMake子目录