小牛队的 g++ 编译问题
g++ compilation issues on Mavericks
我使用 ezlogger 库为我们的项目进行日志记录。升级 OSX Maverick 后,我无法编译代码,g++ 编译器在编译日志记录宏时抛出错误。错误消息:
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;
}
};
任何想法我们如何解决这个问题?
> get_verbosity_level_tolerance() 是结构ezlogger_verbosity_level_policy的成员。
尝试调用 ezlogger_verbosity_level_policy::get_verbosity_level_tolerance() 而不是只调用 get_verbosity_level_tolerance()
相关文章:
- Rextester 语言编译C++问题
- C++ 多级虚拟继承编译问题
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 使用 CImg 库的 std::min 和 std::max 的编译问题
- Qt Visual Studio 2015 加载项编译问题
- libssh 问题编译问题未定义的错误
- 在 armhf 上使用 cmake 在 qt 上的编译问题 "Syntax error: wird unexpected (expecting " ) " "
- LLVM 万花筒教程 JIT 编译问题
- PX 转换例程编译问题
- 模板类编译问题与 typedef 变量
- 在 Ubuntu 16.04 LTS 上使用 c++ 编译问题?
- 编译问题与 Ubuntu Linux
- C++编译问题错误 - C2332:<类:缺少标记名称>
- AIX C++映射编译问题
- Ubuntu 下的 Cmake 和 Intel IPP 的编译问题
- 如何解决我在 Ubuntu 19.04 下使用 GLFW 时遇到的这个编译问题?
- wxWebView在Ubuntu上的编译问题
- C++constexpr编译问题
- CMake - OpenVR 编译问题
- C++ SD 总线源文件编译问题