2017-07-26 38 views
0

私のプロジェクトでspdlogを使用しようとしています。 spdlog docuによると、includeフォルダの下にあるファイルをコピーして、C++ 11コンパイラを使うだけです。C++ SPDLOGコンパイルエラー:変数またはフィールド 'set_error_handler'が宣言されました。

プロジェクトのルートフォルダに/ 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); 

私は、次の追加しようとしているCMakeLists.txt

target_include_directories(ProjectName INTERFACE spdlog) 

include_directories(spdlog) 

target_link_libraries(ProjectName .... -libspdlog-dev) 

(私がインストールされlibspdlog-devの)

add_subdirectory(spdlog) 

が、上記の作品のどれも。誰も私がこれをどのように修正できるか知っていますか?どうもありがとう!

答えて

0
を使用することができ、インポートインタフェースライブラリ spdlog::spdlogを提供

解決方法はspdlogをインストールすることでした:

sudo apt-get install libspdlog-dev 

とincludeを使用:

#include <spglog/spdlog.h> 

を私が最初に私のプロジェクトのルートにspdlogをコピーして使用することを含むしようとしていた。

#include "spdlog/spdlog.h" 
関連する問題