我一直在尝试为学校项目包含现代 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。毕竟,我只是想探索图书馆。
现在您可以像这样使用所描述的 using
声明并关闭并运行。
关于c++ - 无法包含 Clion 库中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579680/