C++ 虚拟内存耗尽:无法分配内存

C++ 虚拟内存耗尽:无法分配内存,c++,json,compiler-errors,virtual-memory,wt,C++,Json,Compiler Errors,Virtual Memory,Wt,我在Ubuntu12.10上的编译失败,可用内存为300mb(总共750mb,350mb到MySQL),频率为1.5ghz,我正试图将wt的基本hello world文件修改成一个简单的ajax页面。我很确定这不是内存问题,因为我能够用g++-O3-o hello hello.C-lwtfcgi-lwt-lboost\u信号编译原始hello.C文件 我确信我正在压缩C++,因为我撕开了代码> HeloApvest::HeloApple(const WeWale&Env)。 :waapplica

我在Ubuntu12.10上的编译失败,可用内存为300mb(总共750mb,350mb到MySQL),频率为1.5ghz,我正试图将wt的基本hello world文件修改成一个简单的ajax页面。我很确定这不是内存问题,因为我能够用
g++-O3-o hello hello.C-lwtfcgi-lwt-lboost\u信号编译原始hello.C文件

我确信我正在压缩C++,因为我撕开了代码> HeloApvest::HeloApple(const WeWale&Env)。 :waapplication(env)
,并放入Wt::Json示例中的示例

HelloApplication::HelloApplication(const WEnvironment& env)
  : WApplication(env)
{
    Json::Object result;
    Json::parse("{ "
             "  \"a\": \"That's great\", "
             "  \"b\": true "
             "}",
             result);

    std::cerr << "Size: " << result.size(); << std::endl; // Size: 2
    WString s = result.get("a");
    bool b = result.get("b");
    std::cerr << "a: " << s << ", b: " << b << std::endl; // a: That's great, b: true
}
HelloApplication::HelloApplication(const-WEnvironment&env)
:waapplication(环境)
{
Json::对象结果;
Json::parse(“{”
“a:”“太好了”
“\“b\”:真”
"}",
结果);

STR::Cyr:P>由于编译失败内存不足,内存不足,无法编译程序。这可能不是因为“一个会话管理问题”,正如所接受的答案所建议的。MySQL比它吃得多吗?还是300 MB足够编译C++了吗?
在Wt中提供JSon(如REST接口)是通过绑定到WSServer对象的WResource完成的。WAApplication用于交互式用户界面。

作为一种潜在的快速修复方法:您可以通过

make -j 1

这告诉构建工具只使用一个CPU。对我来说是有效的。

不知道为什么有人否决了你,这似乎是个好问题。祝你好运…+1。我要做的第一件事是在valgrind下运行程序,看看它是否发现内存泄漏。@Voo感谢你的新工具!(对我来说是新的)此外,如果使用
g++-g
编译程序,二进制文件中会内置调试符号。然后可以在二进制文件上运行
gdb
,以执行一些调试。这里有用的快速gdb命令有
r
来运行程序,
bt
在遇到任何崩溃或错误后进行回溯。这应该会告诉你确切的失败点。@Tuxdude谢谢!我今晚正在准备工具!如果那一小段代码不能用300mb编译,那就是一组繁重的代码!我可以运行一个复杂得多的websocket++或java websocket服务器,只需10秒的内存。上面所做的只是接收一些json并输出其中的一部分到终点站,老兄,你救了我