QT ПРОГРАММА ПОДСВЕТКИ КОДА MADCODEHIGHLIGHTER
Решил сделать программку для подсветки кода и генерации HTML шаблона для вставки не посредственно на свой сайт, чтобы не искать каждый раз онлайн-инструмент, через который я обычно это делаю. Моя программа будет интереснее, проще, а главное, к чему я пришел - это к пониманию, что ее надо делать при помощи KDE библиотеки syntax-highlighting, которая используется для таких целей в самом QtCreator-e. Проблемы начались уже на начальном этапе, с cmake.exe в моей любимой среде программирования MSYS2. И поэтому я тут вкратце опишу, что надо делать, чтобы подготовиться к работе над программой.
🛠 Установка и настройка среды MSYS2 для сборки Qt-библиотек с CMake
Эта статья поможет вам пройти весь путь от установки MSYS2 до сборки библиотеки syntax-highlighting
от KDE с помощью CMake
и Qt 6.8.3
. Подробно расписаны шаги, учтены возможные ошибки и даны советы, как их избежать. Подойдёт для новичков и тех, кто запутался в терминалах MSYS2.
📦 Шаг 1. Установка MSYS2
Скачайте установщик MSYS2 с официального сайта и установите в C:\msys64
(по умолчанию):
После установки откройте MSYS2 MSYS
и выполните обновление:
pacman -Syu
# Перезапустите MSYS2 при необходимости
pacman -Su
🚪 Шаг 2. Выбор терминала
MSYS2 имеет несколько окружений:
- 🐧 MSYS — POSIX-окружение для скриптов
- 🗾 MINGW64 — GCC x64
- 🟩 UCRT64 — совместимо с Universal CRT Windows
Важно: Все пакеты привязаны к конкретному окружению. То, что стоит в mingw64
, не видно в ucrt64
. Не смешивайте окружения в процессе работы.
⚖️ Шаг 3. Установка необходимых пакетов
Откройте MINGW64
или UCRT64
терминал и выполните:
pacman -S --needed git base-devel mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-cmake \
mingw-w64-x86_64-qt6-base \
mingw-w64-x86_64-qt6-tools \
mingw-w64-x86_64-extra-cmake-modules \
mingw-w64-x86_64-perl
Если используете UCRT64, замените префикс mingw-w64-x86_64-
на mingw-w64-ucrt-x86_64-
.
🗺 Шаг 4. Проверка путей
# Проверка cmake
which cmake
cmake --version
# Проверка qmake
which qmake6
qmake6 --version
Убедитесь, что команды указывают на путь /mingw64/bin/
или /ucrt64/bin/
.
📂 Шаг 5. Скачивание библиотеки syntax-highlighting
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/kf6-syntax-highlighting/6.16.0-0ubuntu1/kf6-syntax-highlighting_6.16.0.orig.tar.xz
Распаковываем... Далее:
cd /c/kde/syntax-highlighting-6.16.0 mkdir build && cd build
⚙️ Шаг 6. Сборка
cd /c/kde/syntax-highlighting-6.16.0/build cmake .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=C:/kde/kf6 -DCMAKE_PREFIX_PATH=C:/Qt/6.8.3/mingw_64 mingw32-make mingw32-make install
Важно: путь C:/Qt/6.8.3/mingw_64
должен содержать установленный Qt6.
📄 Шаг 7. Подключение библиотеки в проект (.pro)
Чтобы использовать библиотеку syntax-highlighting
в Qt-проекте на qmake, в .pro
добавьте:
INCLUDEPATH += C:/kde/kf6/include/KF6
LIBS += -LC:/kde/kf6/lib -lKF6SyntaxHighlighting
Убедитесь, что путь C:/kde/kf6/bin
добавлен в PATH
при запуске программы.
💥 Возможные ошибки и решения
- ❌ Qt6Core.dll не найден — добавьте
C:/Qt/6.8.3/mingw_64/bin
в PATH или запускайте из MSYS2-терминала. Кроме того, решается удалением папки C:\msys64 и переустановкой MSYS2, а так же переустановкой Qt. - ❌ точка входа не найдена — несовместимость версий CMake/Qt или путаница окружений.
🚀 build.sh для автоматизации
#!/usr/bin/env bash
set -e
QT_PATH="/c/Qt/6.8.3/mingw_64"
INSTALL_PATH="/c/kde/kf6"
mkdir -p build
cd /c/kde/syntax-highlighting-6.16.0/build
cmake .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=C:/kde/kf6 -DCMAKE_PREFIX_PATH=C:/Qt/6.8.3/mingw_64 mingw32-make mingw32-make install
mingw32-make -j$(nproc)
mingw32-make install
MSYS2 — мощный инструмент, но требует внимательности. Главное — всё делать в одном окружении (например, MINGW64), ставить пакеты именно под него, и тогда сборка syntax-highlighting
завершится успешно, а готовые бинарники окажутся в C:/kde/kf6
.
https://github.com/madmentat/madCodeHighlighter