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

在虚拟机中安装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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
log4cplus::PropertyConfigurator 是 log4cplus 提供的一个用于配置 log4cplus 日志记录器的类。它通过读取一个配置文件来初始化和配置 log4cplus。配置文件定义了要记录的日志级别、日志输出格式、日志输出目标等。 使用 log4cplus::PropertyConfigurator,您可以通过以下步骤来配置 log4cplus: 1. 创建一个 log4cplus::PropertyConfigurator 对象。 2. 调用 configure() 方法,并传递一个配置文件的路径作为参数。该方法将读取配置文件并根据配置初始化 log4cplus。 3. 使用 getLogger() 方法获取一个 log4cplus::Logger 对象,该对象用于记录日志。 4. 使用Logger 对象进行日志记录。 例如,以下代码展示了如何使用 log4cplus::PropertyConfigurator 配置 log4cplus: ```cpp #include <log4cplus/logger.h> #include <log4cplus/configurator.h> int main() { // 创建 PropertyConfigurator 对象 log4cplus::PropertyConfigurator configurator; // 通过配置文件初始化 log4cplus configurator.configure("log.properties"); // 获取 Logger 对象 log4cplus::Logger logger = log4cplus::Logger::getInstance("MyLogger"); // 记录日志 LOG4CPLUS_INFO(logger, "Hello, log4cplus!"); return 0; } ``` 在上面的示例中,log.properties 是一个配置文件的路径,其中定义了日志级别为 INFO,并将日志输出到控制台。 注意:log4cplus 是一个开源的 C++ 日志,它提供了丰富的日志记录功能。log4cplus::PropertyConfigurator 是其中的一个组件,用于配置 log4cplus

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值