Найти в Дзене
Phoin

Установка и сборка KCacheGrind на Linux

Для начала разберем зачем нужен KCacheGrind, используется для анализа лог файлов которые получаются на выходе работы утилиты callgrind поставляемой в пакете Valgrind на линукс. Перейдем к рассмотрению зависимостей самого KCachgrind. Уточню что все действия будут выполняться на Lubuntu, в процессе установки пакетов поставим qt5 необходимый для работы KCachgrind. Также на момент начала всех действий уже установлено cmake, git которые понадобятся для сборки и клонирования репозитория. пакеты необходимые для сборки Теперь пакеты для установки Пусть количество пакетов вас не пугает 80% из них уже установлены в вашей системе, а если на данный момент у вас уже стоит qtcreator то практически все пакеты для установки у вас есть, обратить внимание стоит на пакеты для сборки так как эти пакеты не стоят по умолчанию и пропустив хотя бы один при конфигурации проекта cmake будут ошибки find_package() Для начала работы необходимо собрать библиотеку ECM необходимую для работу любого KDE приложения

Для начала разберем зачем нужен KCacheGrind, используется для анализа лог файлов которые получаются на выходе работы утилиты callgrind поставляемой в пакете Valgrind на линукс. Перейдем к рассмотрению зависимостей самого KCachgrind. Уточню что все действия будут выполняться на Lubuntu, в процессе установки пакетов поставим qt5 необходимый для работы KCachgrind. Также на момент начала всех действий уже установлено cmake, git которые понадобятся для сборки и клонирования репозитория.

пакеты необходимые для сборки

  • qtbase5dev
  • libkf5archive-dev
  • libkf5xmlgui-dev
  • libkf5doctools-dev
  • libkf5widgetsaddons-dev
  • libkf5kio-dev

Теперь пакеты для установки

  • kio
  • libc6
  • libgcc1
  • libkf5archive5
  • libkf5configcore5
  • libkf5configwidgets5
  • libkf5coreaddons5
  • libkf5i18n5
  • libkf5jobwidgets5
  • libkf5kiocore5
  • libkf5widgetsaddons5
  • libkf5xmlgui-bin
  • libkf5xmlgui5
  • libqt5core5a
  • libqt5dbus5
  • libqt5gui5
  • libqt5widgets5

Пусть количество пакетов вас не пугает 80% из них уже установлены в вашей системе, а если на данный момент у вас уже стоит qtcreator то практически все пакеты для установки у вас есть, обратить внимание стоит на пакеты для сборки так как эти пакеты не стоят по умолчанию и пропустив хотя бы один при конфигурации проекта cmake будут ошибки find_package()

Для начала работы необходимо собрать библиотеку ECM необходимую для работу любого KDE приложения

Склонируем репозиторий git clone https://github.com/KDE/extra-cmake-modules.git

соберем проект(описано здесь https://dzen.ru/a/ZnxQdchkZQhS7Y7C)

Теперь когда все зависимости установлены перейдем к процессу сборки:

1) склонируем репозиторий KCacheGrind

git clone https://github.com/KDE/kcachegrind.git

2)теперь очень важно нужно откатить репозиторий на любой коммит Ноябрь-Декабрь 2021

Я использовал git checkout номер коммита

3) соберем проект(описано здесь https://dzen.ru/a/ZnxQdchkZQhS7Y7C)

В результате в директории сборки будет папка bin в ней лежит исполняемый файл. Основной сценарий работы будет таким

kcachegrind call.out

где call.out - файл лог полученный в результате работы callgrind

Теперь отвечу на вопрос который мог возникнуть при прочтении статьи Зачем откатывать репозиторий на это есть одна причина - если попытаться собрать репозиторий допустим 2024 года(на момент написания) то первая проблема с которой я столкнулся Устаревшая версия qt6(для сборки требуется 6.5 на момент написания статьи в репозиториях ubuntu лежит версия 6.4) из за этого невозможно собрать проект, то же самое касается модуля KF6 (на момент написания в репозиториях ubuntu лежит версия 5.84)