C++ 虚拟内存耗尽:无法分配内存
我在Ubuntu12.10上的编译失败,可用内存为300mb(总共750mb,350mb到MySQL),频率为1.5ghz,我正试图将wt的基本hello world文件修改成一个简单的ajax页面。我很确定这不是内存问题,因为我能够用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
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并输出其中的一部分到终点站,老兄,你救了我