2013-11-07 3 views
1

Я использую библиотеку ezlogger для ведения журнала для нашего проекта. После обновления OSX Maverick я не могу скомпилировать код, компилятор g ++ выдает ошибки при компиляции макросов регистрации. Сообщение об ошибке:g ++ проблемы с компиляцией на Mavericks

In file included from ./../ezlogger/ezlogger_headers.hpp:16: 
./../ezlogger/ezlogger.hpp:113:29: error: use of undeclared identifier 'get_verbosity_level_tolerance' 
         if (m_verbosity_level <= get_verbosity_level_tolerance()) 
               ^
./../ezlogger/ezlogger.hpp:118:6: error: use of undeclared identifier 'get_log_stream' 
             get_log_stream() << Data; 
             ^
./../ezlogger/ezlogger.hpp:124:29: error: use of undeclared identifier 'get_verbosity_level_tolerance' 
         if (m_verbosity_level <= get_verbosity_level_tolerance()) 
               ^
./../ezlogger/ezlogger.hpp:129:6: error: use of undeclared identifier 'get_log_stream' 
             get_log_stream() << func; 
             ^
./../ezlogger/ezlogger.hpp:135:29: error: use of undeclared identifier 'get_verbosity_level_tolerance' 
         if (m_verbosity_level <= get_verbosity_level_tolerance()) 
               ^
./../ezlogger/ezlogger.hpp:140:29: error: use of undeclared identifier 'get_verbosity_level_tolerance' 
         if (m_verbosity_level <= get_verbosity_level_tolerance()) 
               ^
./../ezlogger/ezlogger.hpp:145:29: error: use of undeclared identifier 'get_verbosity_level_tolerance' 
         if (m_verbosity_level <= get_verbosity_level_tolerance()) 
               ^
./../ezlogger/ezlogger.hpp:151:29: error: use of undeclared identifier 'get_verbosity_level_tolerance' 
         if (m_verbosity_level <= get_verbosity_level_tolerance()) 
               ^

код get_verbosity_level_tolerance() является следующее:

struct ezlogger_verbosity_level_policy 
    { 
      static inline verbosity get_verbosity_level_tolerance(){return set_or_get_verbosity_level_tolerance(true);} 
      static void set_verbosity_level_tolerance(verbosity NewValue){set_or_get_verbosity_level_tolerance(false, NewValue);} 
    private: 
      inline static verbosity initial_verbosity_level(){return log_default_verbosity_level;} 
      static verbosity set_or_get_verbosity_level_tolerance(bool GetLevel, verbosity NewValue = log_default_verbosity_level) 
      { 
        static verbosity verbosity_level = initial_verbosity_level(); 
        if (!GetLevel) verbosity_level = NewValue; 
        return verbosity_level; 
      } 
    }; 

Все думали, как мы можем решить эту проблему?

ответ

1

get_verbosity_level_tolerance() является членом структура ezlogger_verbosity_level_policy.

Try вызова ezlogger_verbosity_level_policy :: get_verbosity_level_tolerance() вместо только get_verbosity_level_tolerance()

Смежные вопросы