Clone
2
building DE
ispyisail edited this page 2026-09-11 16:01:30 +12:00

QElectroTech Erstellen

Anweisungen zum Erstellen von QElectroTech aus Quellcode.

Voraussetzungen

Stellen Sie vor dem Erstellen sicher, dass die richtigen Werkzeuge und Bibliotheken installiert sind.

Qt6 ist die Standardversion. Seit a1c090781 (September 2026) setzt CMakeLists.txt QT_VERSION_MAJOR auf 6, wenn nichts angegeben wird, und der Qt5-Zweig wurde eingestellt. Qt 5.15 hat 2025 das Ende seiner Lebensdauer erreicht. Bauen Sie nur mit Qt5, wenn Sie einen bestimmten Grund haben, indem Sie -DQT_VERSION_MAJOR=5 übergeben.

Linux

Ubuntu/Debian :

sudo apt update
sudo apt install build-essential cmake ninja-build git pkg-config

# Qt6
sudo apt install qt6-base-dev qt6-base-private-dev libqt6svg6-dev \
                 libqt6sql6-sqlite qt6-tools-dev qt6-tools-dev-tools \
                 qt6-l10n-tools libqt6pdf6 qt6-pdf-dev

# SQLite und CUPS — siehe Hinweis unten
sudo apt install libsqlite3-dev libcups2-dev

Unter Ubuntu 22.04 werden möglicherweise zusätzlich libgl1-mesa-dev und libegl1-mesa-dev benötigt.

Fedora/RHEL :

sudo dnf groupinstall "Development Tools"
sudo dnf install cmake ninja-build git qt6-qtbase-devel qt6-qtsvg-devel \
                 qt6-qttools-devel sqlite-devel cups-devel

Arch Linux :

sudo pacman -S base-devel cmake ninja git qt6-base qt6-svg qt6-tools \
               sqlite libcups

Warum CUPS benötigt wird

QElectroTech selbst verwendet CUPS nicht. Standardmäßig kompiliert der Build außerdem zwei KDE-Frameworks-Bibliotheken (KF6CoreAddons, KF6WidgetsAddons) aus dem Quellcode, und diese benötigen CUPS für die Unterstützung des Druckdialogs. Ohne die Entwicklungs-Header schlägt bereits die Konfiguration fehl, bevor überhaupt etwas kompiliert wird:

-- Could NOT find Cups (missing: CUPS_LIBRARIES CUPS_INCLUDE_DIR)
CMake Error at .../FeatureSummary.cmake:869 (message):
  feature_summary() Error: REQUIRED package(s) are missing, aborting CMake

Zwei Möglichkeiten: das CUPS-Entwicklungspaket wie oben installieren, oder die von Ihrer Distribution bereitgestellten KDE-Frameworks-Pakete installieren und mit -DBUILD_KF=NO konfigurieren, damit der Build diese verwendet, statt eigene zu kompilieren.

macOS

  1. Installieren Sie Xcode Command Line Tools :

    xcode-select --install
    
  2. Installieren Sie Abhängigkeiten via Homebrew :

    brew install cmake ninja git qt
    # oder für Qt6 :
    brew install cmake git qt
    
  3. Setzen Sie Qt-Pfad (wenn nötig) :

    export Qt6_DIR=$(brew --prefix qt)/lib/cmake/Qt6
    # oder für Qt6 :
    export Qt_DIR=$(brew --prefix qt)/lib/cmake/Qt6
    

Windows

Option 1 : Visual Studio (Empfohlen)

  1. Installieren Sie Visual Studio Community (kostenlos)
    • Wählen Sie "Desktop development with C++"
    • Enthält MSVC-Compiler
  2. Installieren Sie CMake von cmake.org
  3. Installieren Sie Qt5 oder Qt6 von qt.io
    • Wählen Sie "MSVC 2019 64-bit" (oder 2022)

Option 2 : MinGW (Alternative)

  1. Installieren Sie MinGW mit C++-Unterstützung
  2. Installieren Sie CMake
  3. Installieren Sie Qt5 (MinGW-Build)

Option 3 : WSL (Windows Subsystem for Linux)

  1. Aktivieren Sie WSL2
  2. Installieren Sie Ubuntu in WSL
  3. Folgen Sie Linux-Anweisungen oben

Git und Quellcode

Klonen Sie das Repository mit Submodulen :

git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
cd qelectrotech-source-mirror

Die --recursive-Flagge ist wichtig um alle Abhängigkeiten zu erhalten.


Aus Quelle Erstellen

Schritt 1 : Repository Klonen

git clone https://github.com/qelectrotech/qelectrotech-source-mirror.git
cd qelectrotech-source-mirror

Schritt 2 : Build Konfigurieren

mkdir build && cd build
cmake ..

Schritt 3 : Kompilieren

cmake --build . --config Release

Oder verwenden Sie das Build-Tool Ihrer Plattform :

Linux/macOS :

make -j$(nproc)

Windows (MSVC) :

cmake --build . --config Release --parallel

Schritt 4 : Installieren (Optional)

cmake --install .

Oder führen Sie die Binärdatei aus dem Build-Verzeichnis aus.


Build-Varianten

Debug-Build

cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .

Mit AddressSanitizer (ASAN)

cmake -DCMAKE_CXX_FLAGS="-fsanitize=address" ..
cmake --build .

Mit ThreadSanitizer (TSan)

cmake -DCMAKE_CXX_FLAGS="-fsanitize=thread" ..
cmake --build .

Tests

Tests Ausführen

cd build
ctest

Oder mit Ausführlichkeit ausführen :

ctest --verbose

Fehlerbehebung

Problem : Could NOT find Cups

-- Could NOT find Cups (missing: CUPS_LIBRARIES CUPS_INCLUDE_DIR)
CMake Error at .../FeatureSummary.cmake:869 (message):
  feature_summary() Error: REQUIRED package(s) are missing, aborting CMake

Lösung : Der Build kompiliert standardmäßig zwei KDE-Frameworks-Bibliotheken aus dem Quellcode, und diese benötigen CUPS. Installieren Sie das Entwicklungspaket (libcups2-dev, cups-devel oder libcups, je nach Distribution), oder konfigurieren Sie mit -DBUILD_KF=NO, um die KDE-Frameworks-Pakete Ihrer Distribution zu verwenden.

Problem : The following REQUIRED packages have not been found: Qt6

Meist ein veralteter Abhängigkeits-Cache und kein fehlendes Paket — tritt am häufigsten nach der Umstellung auf Qt6 auf, in einem Baum, der zuvor für Qt5 konfiguriert war.

Lösung : Die heruntergeladenen Abhängigkeiten werden außerhalb des Build-Verzeichnisses in ~/.cache/qet-deps zwischengespeichert. Das Löschen allein des Build-Verzeichnisses leert diesen Cache nicht: Die zwischengespeicherten Extra CMake Modules bleiben für die alte Qt-Version konfiguriert und schlagen fehl, weil sie die neue verlangen.

rm -rf ~/.cache/qet-deps build/
cmake -S . -B build -G Ninja

Problem : CMake findet Qt nicht

Lösung :

cmake -S . -B build -DCMAKE_PREFIX_PATH=/pfad/zu/Qt/6.x.x/gcc_64

Unter macOS mit Homebrew: export Qt6_DIR=$(brew --prefix qt)/lib/cmake/Qt6.

Problem : Vermischte Qt-Versionen

INTERFACE_QT_MAJOR_VERSION of "Qt5::Core" does not agree with QT_MAJOR_VERSION bedeutet, dass ein Teil des Builds Qt5 und ein anderer Qt6 gefunden hat.

Lösung : Konfigurieren Sie aus einem leeren Build-Verzeichnis und übergeben Sie -DQT_VERSION_MAJOR, damit die Wahl explizit ist.

Problem : "Permission denied" auf Linux

Lösung :

sudo chown -R $USER:$USER .

Problem : Build sehr langsam

Lösungen :

  • Ninja statt Make verwenden : cmake -GNinja ..
  • Parallelisierung erhöhen : cmake --build . -j8
  • ccache verwenden : cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ..

Nächste Schritte

Nach dem Erstellen von QET :

  1. App testen : ./qelectrotech (oder Windows/macOS-Executable)
  2. Tests ausführen : ctest
  3. Code lesen : Erkunden Sie das Verzeichnis sources/
  4. Beitragen : Siehe Zu QET Beitragen

Zusätzliche Ressourcen


🌐 Sprache wählen — English · Français · Deutsch