现在我想编译一个需要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
答案 0 :(得分:1)
您必须使用或不使用-std=c++11
标志编译两者您的代码和log4cplus库。不支持混合编辑。
答案 1 :(得分:0)
log4cplus::Logger g_piano_logger;
auto logger = log4cplus::Logger::getInstance(...
g_logger = logger;
注意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