- BUILD_RTI Default auf OFF gesetzt (GCC-Inkompatibilität mit RTI 7.7.0) - RTI_INCLUDE_DIRS mit vier Pfaden konfiguriert (include/, include/ndds/, include/ndds/hpp, include/rti) - RTI_LINUX Compile-Definition zu IMPORTED Targets hinzugefügt - RTI IMPORTED Targets manuell erstellt (nddsc, nddscore, nddscpp, nddscpp2) - cnr_frequency_planning_helper.h: Fehlende Qt-Includes hinzugefügt - EXTERNAL_DEPENDENCIES.md erstellt zur Dokumentation fehlender Dependencies Temporärer Workaround bis RTI-Version mit GCC 13.x Kompatibilität verfügbar ist.
3.0 KiB
3.0 KiB
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 ausavm_enums.idl:ModulationTypeChannelSpacingChannelSpacingHFRcOperatingModeFrequencyBand
Lts/DDS- DDS Connector und QoS-ModuleLts/Common/LtsSession- LtsSessionDataDds (DDS-Integration)- Alle Module die DDS-generierte Types verwenden
Lösungsoptionen:
- RTI Upgrade: Neuere RTI Connext DDS Version suchen die GCC im Ubuntu 26.04 Container unterstützt
- GCC Downgrade: Ältere GCC-Version im Container verwenden (z.B. GCC 8.5.0 wie von RTI erwartet)
- RTI Patches: RTI Header patchen um API-Namen zu korrigieren (nicht empfohlen)
Aktueller Workaround:
BUILD_RTI=OFFals 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- VerwendetArcGIS::ArcGISTarget
Konfiguration:
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
- Build ohne RTI validieren - Alle nicht-RTI Module erfolgreich bauen
- RTI-Problem dokumentieren - Diese Datei dient als Referenz
- RTI-Lösung evaluieren - Mit RTI-Team Kontakt aufnehmen wegen GCC-Kompatibilität
- 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)