【问题标题】:log4cplus cannot find AppenderFactorylog4cplus 找不到 AppenderFactory
【发布时间】:2016-04-01 17:11:40
【问题描述】:

我经常使用log4cplus,但我遇到了一个新问题。

我有一个使用 dll (LoadLibrary) 的 Windows 应用程序

它们建立在不同的编译器上,但使用同样名称的 dll(包括 log4cplus.dll)也建立在不同的编译器上。该应用程序及其使用的所有 dll 都构建在一个环境中(vs2008)。 dll 和它使用的所有 dll 都建立在另一个环境(vs2013)上。

LoadLibrary 失败,直到我更改应用程序以将 LOAD_WITH_ALTERED_SEARCH_PATH 标志传递给 LoadLibraryEx,这似乎允许 dll 成功加载自己的依赖项,但现在我收到这些运行时错误

log4cplus:ERROR PropertyConfigurator::configureAppenders()- Cannot find AppenderFactory: log4cplus::RollingFileAppender
log4cplus:ERROR PropertyConfigurator::configureAppenders()- Cannot find AppenderFactory: log4cplus::ConsoleAppender
log4cplus:ERROR PropertyConfigurator::configureLogger()- Invalid appender: ROLLING

日志记录适用于在任一环境中构建的所有应用程序。 日志记录也适用于在同一环境中构建的此应用程序和 dll。 我将 dll 更改为静态链接 log4cplusS.lib,但仍然出现相同的错误。

【问题讨论】:

    标签: c++ dll log4cplus


    【解决方案1】:

    首先,对所有内容使用相同的编译器。使用不同的编译器版本时,基本上不可能使事情正常进行。使用相同的编译器编译所有内容后,尝试解决其他问题(如果仍然存在)。

    【讨论】:

    • 我提到在同一个编译器上构建是没有问题的,但是dll通常没有这个要求。混合会带来好处的原因是对最新环境的增量升级。
    猜你喜欢
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多