2

现在当我要编译需要ld的项目时出现问题liblog4cplus.a 当我使用编译选项-std=c++11时,出现错误

未定义对 'log4cplus::Logger::operator=(log4cplus::Logger&&)' 的引用

但是整个项目都需要这个选项-std=c++11
那么我该如何解决这个问题呢?

PS:编译在Ubuntu 12.04哪个gcc version:4.8.2liblog4cplus version:1.1.3

4

2 回答 2

1

您必须在有或没有标志的情况下编译-std=c++11的代码和 log4cplus 库。不支持混合编译。

于 2015-09-22T05:08:16.933 回答
0

我的解决方案:

log4cplus::Logger g_piano_logger; auto logger = log4cplus::Logger::getInstance(... g_logger = logger;

或重建 log4cplus

注意LOG4CPLUS_HAVE_RVALUE_REFSlog4cplus-1.1.1/include/log4cplus/logger.h

Logger& operator=(const Logger& rhs); #if defined (LOG4CPLUS_HAVE_RVALUE_REFS) Logger (Logger && rhs); Logger & operator = (Logger && rhs); #endif

于 2015-10-21T10:46:25.577 回答