log4cplus的各种坑

前言

项目中需要用到这个日志管理工具,新人,新电脑,之前的项目程序在我的电脑上都跑不起来。一直爆出C000000005的那个错误。  大牛指点之后发现是我电脑上不能用这个日志系统,具体为什么不能用她也没说,所以姐姐我就自己安装下这个工具来试看看,结果各种坑啊。



安装


编译失败

①  error C3861: 'LOG4CPLUS_WARN': identifier not found

添加文件头:

#include <log4cplus/loggingmacros.h>  

②  error LNK2019: 无法解析的外部符号 "const log4cplus::Appender::`vbtable'" (??_8Appender@log4cplus@@7B@),该符号在函数 "public: void __thiscall log4cplus::Appender::__autoclassinit(unsigned int)" (?__autoclassinit@Appender@log4cplus@@QAEXI@Z) 中被引用

参考

解决方法:添加于处理器定义   LOG4CPLUS_BUILD_DLL


还是不对

<span style="font-size:12px;">error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall log4cplus::BasicConfigurator::~BasicConfigurator(void)" (__imp_??1BasicConfigurator@log4cplus@@UAE@XZ)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall log4cplus::Logger::~Logger(void)" (__imp_??1Logger@log4cplus@@UAE@XZ)
error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl log4cplus::detail::macro_forced_log(class log4cplus::Logger const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char const *,int,char const *)" (__imp_?macro_forced_log@detail@log4cplus@@YAXABVLogger@2@HABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBDH2@Z)
error LNK2001: unresolved external symbol "__declspec(dllimport) class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> > & __cdecl log4cplus::detail::get_macro_body_oss(void)" (__imp_?get_macro_body_oss@detail@log4cplus@@YAAAV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall log4cplus::Logger::isEnabledFor(int)const " (__imp_?isEnabledFor@Logger@log4cplus@@QBE_NH@Z)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?getInstance@Logger@log4cplus@@SA?AV12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual void __thiscall log4cplus::PropertyConfigurator::configure(void)" (__imp_?configure@PropertyConfigurator@log4cplus@@UAEXXZ)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall log4cplus::BasicConfigurator::BasicConfigurator(class log4cplus::Hierarchy &,bool)" (__imp_??0BasicConfigurator@log4cplus@@QAE@AAVHierarchy@1@_N@Z)
error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class log4cplus::Hierarchy & __cdecl log4cplus::Logger::getDefaultHierarchy(void)" (__imp_?getDefaultHierarchy@Logger@log4cplus@@SAAAVHierarchy@2@XZ)</span>

什么鬼根本不对,不是添加那个处理器的定义



这样子应该是对了吧


出来结果的时候姐姐都感动哭了


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
log4cplus是一个开源的C++日志库,用于在Linux系统中记录日志信息。它提供了丰富的功能和灵活的配置选项,可以帮助开发人员更好地管理和调试应用程序。 要使用log4cplus,首先需要在Linux系统上安装log4cplus库。可以通过以下步骤进行安装: 1. 下载log4cplus库的源代码包。可以从GitHub(https://github.com/log4cplus/log4cplus)或SourceForge(https://sourceforge.net/projects/log4cplus/)上获取源代码包。 2. 解压源代码包。可以使用以下命令解压tar.gz文件: ```shell tar -zxvf log4cplus-2.0.5.tar.gz ``` 3. 进入解压后的目录: ```shell cd log4cplus-2.0.5 ``` 4. 编译和安装log4cplus库。可以使用以下命令进行编译和安装: ```shell ./configure make sudo make install ``` 安装完成后,就可以在你的应用程序中使用log4cplus来记录日志了。以下是一个简单的示例: ```cpp #include <log4cplus/logger.h> #include <log4cplus/loggingmacros.h> #include <log4cplus/configurator.h> int main() { // 初始化log4cplus log4cplus::Initializer initializer; // 加载配置文件 log4cplus::PropertyConfigurator::doConfigure("log4cplus.properties"); // 获取日志记录器 log4cplus::Logger logger = log4cplus::Logger::getInstance("MyLogger"); // 记录日志 LOG4CPLUS_INFO(logger, "Hello, log4cplus!"); return 0; } ``` 在上面的示例中,我们首先包含了log4cplus的头文件,然后初始化log4cplus并加载配置文件。接下来,我们获取一个日志记录器,并使用LOG4CPLUS_INFO宏记录一条日志。 请注意,上述示例假设你已经创建了一个名为"log4cplus.properties"的配置文件,并将其放置在可执行文件的同一目录下。配置文件中可以定义日志的输出格式、级别、目标等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值