【发布时间】:2020-01-22 09:30:33
【问题描述】:
我已经通过 vcpkg 安装了 gtkmm。 (gtkmm 3.22.2-2 和 gtk 3.22.19-3)如果我尝试编译gnome tutorials 中提供的简单示例。它在执行结束时显示内存泄漏。有人说它不是泄漏,gnome 故意将分配的资源释放给操作系统作为优化。还有一个类似的问题reported 在 Debian 中使用 valgrind。好吧,我无法通过 gnome 优化区分真正的泄漏......我想了解如何正确退出 gnome 应用程序。这是我使用 CRT memdebug 实用程序检查泄漏的方法。
#include <gtkmm.h>
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#else
#define DBG_NEW new
#endif
int main(int argc, char* argv[])
{
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
{
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.examples.base");
Gtk::Window window;
window.set_default_size(200, 200);
app->run(window);
}
return 0;
}
【问题讨论】:
标签: c++ memory-leaks visual-studio-2019 gtkmm vcpkg