【问题标题】:bad_alloc error when running code using log4cplus使用 log4cplus 运行代码时出现 bad_alloc 错误
【发布时间】:2012-10-27 15:01:54
【问题描述】:

我一直在尝试在我的 PC 上运行这个 log4cplus 示例:

http://log4cplus.sourceforge.net/loglevel.html

我使用 VS2010 创建了我的 LogLevel 项目,我正在使用 log4cplus v1.1.0。

我的程序编译得很好,但是当我进入这一行时

Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("main"));

我收到以下错误:

Unhandled exception at 0x75d5d3cf in LogLevel.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0030ed2c..

在“..\Microsoft Visual Studio 10.0\VC\crt\src\new.cpp”文件中(第 63 行)

我怎样才能解决这个问题?

我知道有 another SO thread 谈论同样的问题,但不幸的是它没有解决。

【问题讨论】:

  • 查看我对您链接到的 SO 线程的回答。它可能会有所帮助。
  • @jpen:你是用 log4cplus 作为静态库吗?
  • @wilx - 我刚刚阅读了您的评论。是的,我将它用作静态库。
  • @jpen:请在sourceforge.net/p/log4cplus/bugs 填写错误报告。特别是调用堆栈信息可能非常有用。我无法重现这一点,但我认为这可能是因为全局和静态变量的构造顺序。您的 Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("main")); 行是否在文件或命名空间范围内?您能否也请在 Bazaar 存储库的主干分支中检查代码并进行测试?它包含可以解决此问题的更改(在线程或 main() 启动之前运行的初始化挂钩)。

标签: c++ windows runtime-error log4cplus


【解决方案1】:

如果您在调试中构建应用程序,请务必链接到 lib4CplusD.lib 和 lib4CplusD.dll。同样,发布应用程序应该链接 aginst lib4cplus.lib 和 lib4cplus.dll 我遇到了相同的运行时错误,当我将调试应用程序与调试库链接时,问题得到了解决。

Logger::getInstance causing bad_alloc exception in log4cplus

【讨论】:

    猜你喜欢
    • 2022-08-06
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多