没有c ++ 11的情况下,Easylogging 8.91无法正常运行

时间:2015-03-29 17:17:26

标签: c++ c++11 logging easylogging++

我想使用没有C ++ 11的库,但它不会为我编译: (理论上它应该按照文档@ http://easylogging.muflihun.com: “对于较低版本的C ++(非C ++ 11),请考虑使用Easylogging ++ v8.91。”)

错误:#error此文件需要ISO C ++ 2011标准的编译器和库支持。此支持目前是实验性的,必须使用-std = c ++ 11或-std = gnu ++ 11编译器选项启用。

文件结构:

./ Main.cpp的 ./logger/easylogging ++的.h

Main.cpp的内容:

#include "logger/easylogging++.h"
_INITIALIZE_EASYLOGGINGPP
using namespace std;

int main(int argc, char* argv[]) {
LINFO << "This is my first log";
return 0;
}

../ src / logger / easylogging ++。h:在函数'std :: string easyloggingpp :: internal :: threading :: getCurrentThreadId()'中: ../src/logger/easylogging++.h:691:16:错误:'std :: this_thread'尚未声明 ss&lt;&lt;的std :: this_thread :: get_id();

编译器:gcc版本4.8.2(Ubuntu 4.8.2-19ubuntu1),操作系统:Ubuntu 14.04 LTS

1 个答案:

答案 0 :(得分:0)

作为T.C.在解决方案中建议将这部分代码更改为easylogging ++。h:

Stackpanel

false#if defined(__GNUC__) # define _ELPP_GCC_VERSION (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100 \ + __GNUC_PATCHLEVEL__) # if defined(__GXX_EXPERIMENTAL_CXX0X__) # define _ELPP_CXX0X 1 # elif (_ELPP_GCC_VERSION >= 40801) # define _ELPP_CXX11 1 # endif // defined(__GXX_EXPERIMENTAL_CXX0X__) #endif // defined(__GNUC__) 都更改为0将解决问题。