我想使用没有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
答案 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将解决问题。