现在当我要编译需要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
您必须在有或没有标志的情况下编译您-std=c++11
的代码和 log4cplus 库。不支持混合编译。
log4cplus::Logger g_piano_logger;
auto logger = log4cplus::Logger::getInstance(...
g_logger = logger;
注意LOG4CPLUS_HAVE_RVALUE_REFS
log4cplus-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