Table of Contents
- QElectroTech Erstellen
- Voraussetzungen
- Aus Quelle Erstellen
- Schritt 1 : Repository Klonen
- Schritt 2 : Build Konfigurieren
- Schritt 3 : Kompilieren
- Schritt 4 : Installieren (Optional)
- Build-Varianten
- Tests
- Fehlerbehebung
- Problem : Could NOT find Cups
- Problem : The following REQUIRED packages have not been found: Qt6
- Problem : CMake findet Qt nicht
- Problem : Vermischte Qt-Versionen
- Problem : "Permission denied" auf Linux
- Problem : Build sehr langsam
- Nächste Schritte
- Zusätzliche Ressourcen
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) setztCMakeLists.txtQT_VERSION_MAJORauf 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
-
Installieren Sie Xcode Command Line Tools :
xcode-select --install -
Installieren Sie Abhängigkeiten via Homebrew :
brew install cmake ninja git qt # oder für Qt6 : brew install cmake git qt -
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)
- Installieren Sie Visual Studio Community (kostenlos)
- Wählen Sie "Desktop development with C++"
- Enthält MSVC-Compiler
- Installieren Sie CMake von cmake.org
- Installieren Sie Qt5 oder Qt6 von qt.io
- Wählen Sie "MSVC 2019 64-bit" (oder 2022)
Option 2 : MinGW (Alternative)
- Installieren Sie MinGW mit C++-Unterstützung
- Installieren Sie CMake
- Installieren Sie Qt5 (MinGW-Build)
Option 3 : WSL (Windows Subsystem for Linux)
- Aktivieren Sie WSL2
- Installieren Sie Ubuntu in WSL
- 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 :
- App testen :
./qelectrotech(oder Windows/macOS-Executable) - Tests ausführen :
ctest - Code lesen : Erkunden Sie das Verzeichnis
sources/ - Beitragen : Siehe Zu QET Beitragen
Zusätzliche Ressourcen
- Contributing Guide — Wie Sie Code beitragen
- Forum — Hilfe von der Gemeinschaft erhalten
- GitHub Issues — Bugs und Feature-Anfragen
- CMake Documentation — CMake-Referenz
🌐 Sprache wählen — English · Français · Deutsch
Getting Started
🌐 Languages — English · Français · Deutsch
Guides
Conductors — wire properties, what feeds which export, and cables
Wire & cable catalogue — cable types, IEC 60757 core colours, assigning a core to a conductor
Printing and exporting — paper, PDF, images, and what each path does differently
Linking elements — master, slave, terminal
PLC modules — I/O tables and linking a wire to a specific point
Using the element editor — drawing tools, saving, checks
Preferences reference — what each settings page does
Keyboard-only control — mouseless QET, and the one real gap
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, and why clicking one does nothing
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — folio reports
Variables & formulas — %f, %{label}, sequences
Auto-numbering — schemes, sequences, freezing
Terminal strips — strips, levels, bridges
Title block templates — the .titleblock format
Importing EPLAN parts (.edz) — EPLAN Data Portal
DXF import & export — two unrelated features, one format
The project database — the in-memory SQLite cache
Development
Automating QET — CLI, XML formats, external tools
CLI Reference — command line usage
JavaScript Scripting — --run, geometry editing, undo
Vision — proposal, under discussion
