Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;SPDLOG编译错误:变量或字段‘;设置错误处理程序&x2019;宣告无效_C++_Cmake_Spdlog - Fatal编程技术网

C++ C++;SPDLOG编译错误:变量或字段‘;设置错误处理程序&x2019;宣告无效

C++ C++;SPDLOG编译错误:变量或字段‘;设置错误处理程序&x2019;宣告无效,c++,cmake,spdlog,C++,Cmake,Spdlog,我正在尝试在我的项目中使用spdlog。根据,我只需要在包含文件夹下复制文件,使用C++ 11编译器。 我将/include/spdlog文件夹复制到了我的项目根文件夹中,但在尝试构建项目后出现了很多错误。其中一些是ff: /home/project/Documents/project-server/spdlog/spdlog.h:46:39: error: variable or field ‘set_error_handler’ declared void void set_error_ha

我正在尝试在我的项目中使用spdlog。根据,我只需要在包含文件夹下复制文件,使用C++ 11编译器。 我将/include/spdlog文件夹复制到了我的项目根文件夹中,但在尝试构建项目后出现了很多错误。其中一些是ff:

/home/project/Documents/project-server/spdlog/spdlog.h:46:39: error: variable or field ‘set_error_handler’ declared void
void set_error_handler(log_err_handler);
                                   ^
/home/project/Documents/project-server/spdlog/spdlog.h:46:24: error: ‘log_err_handler’ was not declared in this scope
 void set_error_handler(log_err_handler);
                    ^
In file included from /home/project/Documents/project-server/main.cpp:13:0:
/home/project/Documents/project-server/spdlog/spdlog.h:74:79: error: ‘filename_t’ does not name a type
 std::shared_ptr<logger> basic_logger_mt(const std::string& logger_name, const filename_t& filename, bool truncate = false);
                                                                           ^
/home/project/Documents/project-server/spdlog/spdlog.h:75:79: error: ‘filename_t’ does not name a type
 std::shared_ptr<logger> basic_logger_st(const std::string& logger_name, const filename_t& filename, bool truncate = false);
                                                                           ^
/home/project/Documents/project-server/spdlog/spdlog.h:80:82: error: ‘filename_t’ does not name a type
 std::shared_ptr<logger> rotating_logger_mt(const std::string& logger_name, const filename_t& filename, size_t max_file_size, size_t max_files);
(我安装了libspdlog dev)

但以上这些都不起作用。有人知道我怎么解决这个问题吗?非常感谢

如中所述,您可以

find_package(spdlog CONFIG)
这为您提供了导入的接口库
spdlog::spdlog
,您可以使用它

target_link_library(my_library PUBLIC spdlog::spdlog)

(如图所示)

解决方案是安装spdlog:

sudo apt-get install libspdlog-dev
并包括使用:

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