【发布时间】:2012-12-27 17:45:02
【问题描述】:
我一直在 Windows 7 x64 下编写一个简单的 GUI 地址簿程序,使用 wxWidgets2.8.12 和 boost::serialization 以及 mingw4.6 和 Eclipse CDT Juno。
在使用 boost::archive::text_iarchive 和 text_oarchive 对文件中的条目进行序列化的功能时,我发现该程序将在启动时停止工作。它会简单地启动然后立即终止。 g++ 编译得很好,没有任何东西被写入 stdout 或 stderr。在使用 gdb 进一步调查该问题后,我发现 boost 库确实抛出了异常。
这本身不是问题。问题是这个异常从未显示在任何 Eclipse 的控制台中,所以我什至不知道它存在,直到单步执行整个应用程序。异常本身很容易解决,但由于缺乏输出而被证明是非常有问题的。在 Debug 和 Release 配置中构建和运行应用程序时不显示任何内容。
我的问题本质上是这样的:为什么这些库异常没有被输出,我需要做些什么来确保它们正确显示?经过一段时间的搜索,我还没有找到任何有用的东西,当然,我们将不胜感激。提前感谢任何能够提供帮助的人。
【问题讨论】:
-
首先要做的是打开一个mingw shell,找到编译好的二进制文件并尝试从shell运行它。它现在输出异常吗?那么可能是 Eclipse 的问题,如果还是没有看到异常输出说明 Eclipse 不是问题,可以关注 wxWidgets 和 boost。
-
刚刚试过。我从 Debug 和 Release 目录运行编译的可执行文件的 shell 没有得到任何输出,所以这似乎指向涉及 wxWidgets 的东西(或者可能是 boost,但前者对我来说似乎更可能)
标签: c++ mingw wxwidgets eclipse-cdt boost-serialization