- 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.
84 lines
3.0 KiB
Markdown
84 lines
3.0 KiB
Markdown
# 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) |