Easylogging 8.91 не работает без c ++ 11

Я хочу использовать библиотеку без 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» не был объявлен
сс << станд :: this_thread :: get_id ();

Компилятор: gcc версии 4.8.2 (Ubuntu 4.8.2-19ubuntu1), ОС: Ubuntu 14.04 LTS

0

Решение

Как Т.С. в решении предлагается изменить этот раздел кода наверху easylogging ++. h:

#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__)

Меняя оба _ELPP_CXX0X а также _ELPP_CXX11 до 0 исправит проблему.

0

Другие решения


По вопросам рекламы [email protected]