cmake - C++ SPDLOG compilation error: variable or field ‘set_error_handler’ declared void -
i'm trying use spdlog in project. according spdlog docu, need copy files under include folder , use c++ 11 compiler.
i copied /include/spdlog folder project root folder i'm having lot of errors after trying build project. 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’ not declared in scope void set_error_handler(log_err_handler); ^ in file included /home/project/documents/project-server/main.cpp:13:0: /home/project/documents/project-server/spdlog/spdlog.h:74:79: error: ‘filename_t’ not name 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’ not name 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’ not name 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); i have tried adding following in cmakelists.txt
target_include_directories(projectname interface spdlog) include_directories(spdlog) target_link_libraries(projectname .... -libspdlog-dev) (i installed libspdlog-dev)
add_subdirectory(spdlog) but none of above works. know how can fix this? lot!
as written in spdlogs docu @ bottom, can a
find_package(spdlog config) this provides imported interface library spdlog::spdlog, can use
target_link_library(my_library public spdlog::spdlog) (as seen in spdlog/examples/cmakelists.txt)
Comments
Post a Comment