Я установил gtkmm через vcpkg. (gtkmm 3.22.2-2 и gtk 3.22.19-3) Если я попытаюсь скомпилировать простой пример, приведенный в gnome tutorials . Это показывает утечку памяти в конце выполнения. Некоторые люди говорят, что это не утечка, gnome намеренно оставляет высвобождение выделенных ресурсов операционной системе в качестве оптимизации. И похожая проблема сообщила в Debian с использованием valgrind. Ну, я не могу отличить guish настоящие утечки с оптимизацией 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;
}