# Fehlende External Dependencies - Qt6 Migration ## Status: BUILD_RTI=OFF (temporärer Workaround) ### RTI Connext DDS 7.7.0 - GCC Inkompatibilität **Problem**: RTI Connext DDS 7.7.0 ist nicht kompatibel mit der GCC-Version im Ubuntu 26.04 Container. **Fehlermeldung**: ``` /repo/external/rti_connext_dds-7.7.0/include/ndds/hpp/dds/core/Array.hpp:256:14: error: 'DDS_OctetSeq_get_contiguous_buffer' was not declared in this scope; did you mean 'DDS_OctetsSeq_get_contiguous_buffer'? ``` **Ursache**: RTI 7.7.0 verwendet veraltete API-Namen die nicht mit neueren GCC-Versionen kompatibel sind. **Betroffene Module** (können ohne RTI nicht gebaut werden): - `Lts/Proxies/CombatNetRadio` - Benötigt Enums aus `avm_enums.idl`: - `ModulationType` - `ChannelSpacing` - `ChannelSpacingHF` - `RcOperatingMode` - `FrequencyBand` - `Lts/DDS` - DDS Connector und QoS-Module - `Lts/Common/LtsSession` - LtsSessionDataDds (DDS-Integration) - Alle Module die DDS-generierte Types verwenden **Lösungsoptionen**: 1. **RTI Upgrade**: Neuere RTI Connext DDS Version suchen die GCC im Ubuntu 26.04 Container unterstützt 2. **GCC Downgrade**: Ältere GCC-Version im Container verwenden (z.B. GCC 8.5.0 wie von RTI erwartet) 3. **RTI Patches**: RTI Header patchen um API-Namen zu korrigieren (nicht empfohlen) **Aktueller Workaround**: - `BUILD_RTI=OFF` als Default in CMakeLists.txt - Betroffene Module werden nicht gebaut - Placeholder-Enums in Headern für Build ohne RTI (siehe `cnr_frequency_planning_helper.h`) --- ### ArcGIS Maps SDK for Qt 300.0.0 **Status**: ✅ Konfiguriert und im Build enthalten **Pfad**: `./external/ArcGIS/MapsSDK_Qt_300.0.0/` **CMake-Option**: `BUILD_ARCGIS=ON` (Default) **Betroffene Module**: - `Lts/Viewer/SituationMap` - Verwendet `ArcGIS::ArcGIS` Target **Konfiguration**: ```cmake SET(ARCGIS_SDK_DIR "/repo/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk" CACHE STRING "ArcGIS Runtime SDK for Qt directory") ``` --- ## Build ohne RTI - Erwartete Fehler Folgende Module können ohne RTI DDS nicht gebaut werden und werden übersprungen/fehlgeschlagen: | Modul | Status | Grund | |-------|--------|-------| | `Lts/Common/LtsSession` | ❌ BLOCKED | LtsSessionDataDds benötigt RTI | | `Lts/DDS/*` | ❌ BLOCKED | DDS Connector, QoS, Discovery benötigen RTI | | `Lts/Proxies/CombatNetRadio` | ⚠️ PARTIAL | Enums als Placeholder, aber keine DDS-Integration | | `Lts/Proxies/CombatNetRadio/DDS` | ❌ BLOCKED | DDS-spezifischer Code | --- ## Nächste Schritte 1. **Build ohne RTI validieren** - Alle nicht-RTI Module erfolgreich bauen 2. **RTI-Problem dokumentieren** - Diese Datei dient als Referenz 3. **RTI-Lösung evaluieren** - Mit RTI-Team Kontakt aufnehmen wegen GCC-Kompatibilität 4. **Migration fortsetzen** - Module ohne RTI-Abhängigkeit vollständig migrieren --- **Erstellt**: 2026-08-20 **Letzte Aktualisierung**: 2026-08-20 **Qt-Version**: 6.10.2 **RTI-Version**: 7.7.0 (incompatible) **Container**: Ubuntu 26.04 (GCC 13.x)