0

我是 C++ 新手,请不要烤太多。我正在尝试在 C++ 程序中使用 spdlog 并使用 Jetbrains 的 CLion。

这是我的截图,但不知道我做错了什么。请告知我做错了什么。

这是我的 main.cpp

#include <iostream>
#include "include/spdlog/spdlog.h"


int main() {
    std::cout << "Hello, World!" << std::endl;
    spdlog::info("hello world");
    return 0;
}

这是我的 CMakeList.txt

cmake_minimum_required(VERSION 3.17) project(Lesson01)

set(CMAKE_CXX_STANDARD 14)

add_executable(Lesson01 main.cpp) include_directories(spdlog)

在此处输入图像描述

谢谢

4

2 回答 2

1

在您创建的原型中,您提到了两次关键字包括 # 之后的第一个和引号之间的第二个。

我一直在寻找互联网和 spdlog 原型的基本写作。这里的链接:https ://github.com/gabime/spdlog

#include "spdlog/spdlog.h"

测试没有第二个包含在您的代码中。

一切顺利

马修

于 2020-08-21T12:39:17.357 回答
0

在您的代码中#include "include/spdlog/spdlog.h",通过您链接的屏幕截图,可以找到此包含。然而,它然后抱怨spdlog.h尝试#include <spdlog/common.h>,并且找不到该文件。

这听起来就像您没有为库设置正确的包含目录,而只是通过过度指定路径来正确获取第一个文件。

我会尝试更改include_directories(spdlog)include_directories(include)(或者可能include_directories(include/spdlog)不完全确定哪个文件夹是包含库的基础文件夹)。如果你愿意,你也可以添加所有这些;我不认为在这里添加太多会破坏任何东西,但它可能会影响编译速度,所以尽量只保留正确的。

此外,在进行此更改后,您可能需要将原始包含从 更改#include "include/spdlog/spdlog.h"#include "spdlog/spdlog.h"

于 2020-08-21T13:11:09.837 回答