使用log4cplus库,编译错误undefined reference to `log4cplus::Logger::Logger(log4cplus::Logger&&)'解决方法

文章详细记录了解决在虚拟机中安装log4cplus库并编译测试程序时报错‘undefined reference to `log4cplus::Logger::Logger(log4cplus::Logger&&)'’的方法。通过添加编译选项CXXFLAGS='-std=c++0x'到configure命令,以及在卸载后执行makeclean来确保环境干净,最终成功安装并编译测试程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在虚拟机中安装log4cplus库,编译测试程序的时候总是报“undefined reference to `log4cplus::Logger::Logger(log4cplus::Logger&&)'”错误,经过两天的摸索,终于找到了解决方法:是因为执行“./configure”的时候未加参数导致的,情景如下:

我写的测试程序用的C++11的一些功能,所以用g++编译的时候需要加选项“-std=c++0x”。
第一次安装log4cplus库:
./configure
make
make install
./configure没有加任何参数,安装完成以后,编译测试程序的时候出现了上述错误;遂去网上查找原因,说./configure需要添加参数CXXFLAGS="-std=c++0x";执行make uninstall将log4cplus库卸载后,进行第二次安装:
./configure CXXFLAGS="-std=c++0x"
make
make install
安装完成以后,编译测试程序仍然报错......

之后,经过反复尝试终于找到原因:执行make uninstall卸载第一次安装的库后,没有执行make clean,导致环境被污染,从而使得第二次安装(./configure加参数CXXFLAGS="-std=c++0x")也不成功。

总结,正确安装方法:
将log4cplus包解压后,直接运行
./configure CXXFLAGS="-std=c++0x"
make
make install
就可以安装成功

如果先用不带参数的方法
./configure
make
make install
进行了安装,则卸载后必须执行make clean,否则无效
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值