现在,当我想编译一个需要ld liblog4cplus.a的项目时出现了一个问题,当我使用-std=c++11编译选项时,会出现一个错误
对'log4cplus::Logger::operator=(log4cplus::Logger&&)‘的未定义引用
但是整个项目需要选项-std=c++11
那么我该如何解决这个问题呢?
PS :在Ubuntu 12.04上编译,其中gcc version:4.8.2和liblog4cplus version:1.1.3
发布于 2015-09-22 05:08:16
无论是否使用log4cplus标志,您都必须编译代码和-std=c++11库。不支持混合编译。
发布于 2015-10-21 10:46:25
我的解决方案:
`log4cplus::Logger g_piano_logger; auto logger = log4cplus::Logger::getInstance(... g_logger = logger;` 或重建log4cplus
注log4cplus-1.1.1/include/log4cplus/logger.h中的LOG4CPLUS_HAVE_RVALUE_REFS
`Logger& operator=(const Logger& rhs); #if defined (LOG4CPLUS_HAVE_RVALUE_REFS) Logger (Logger && rhs); Logger & operator = (Logger && rhs); #endif`https://stackoverflow.com/questions/32688568
复制相似问题