【发布时间】: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