我经常使用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,但我仍然遇到相同的错误。
答案 0 :(得分:0)
首先,对所有内容使用相同的编译器。使用不同的编译器版本时,基本上不可能使工作正常。一旦使用相同的编译器编译所有内容,请尝试解决其他问题,如果仍有问题。