Wir versuchen, OCCI mit GCC zu verwenden. OCCI wird mit dem Sun Studio Compiler kompiliert. Gibt es eine Möglichkeit, OCCI mit GCC anstelle von Sun Native Compiler CC zu verwenden?OCCI mit GCC in SOLARIS
Antwort
Sie können effektiv mehrere C++ - Laufzeitbibliotheken nicht mischen.
Eine C++ - Laufzeitimplementierung ist äußerst komplex. Dieser Beitrag beschreibt einige der Komplexität:
Stability of the C++ ABI: Evolution of a Programming Language
Die C++ ABI
Die C++ ABI die C ABI enthält.Darüber hinaus umfasst es die folgenden Merkmale:
Aufbau hierarchischer Klassenobjekte, das heißt, Basisklassen und virtuelle Basisklassen
Layout Zeiger-to-Mitglied
Passing von versteckten Funktionsparametern (z. B. dies)
So rufen Sie eine virtuelle Funktion auf:
Vtable Inhalt und das Layout
Lage in Objekte von Zeigern
Finding Einstellung für die dieser Zeiger
Finding Basisklasse Offsets vtables
Aufruf einer Funktion über Pointer-to-Member
Verwalten Vorlageninstanzen
Externe Schreibweise von Namen ("name Mangeln")
Aufbau und Zerstörung von statischen Objekten
Werfen und Fangen Ausnahmen
Einige Details die Standardbibliothek:
Implementierung definiert Details
Typeinfo und Laufzeit-Compiler Typinformation
Inline-Funktion Zugriff auf Mitglieder
Sie können auch in verschiedenen C hinzufügen ++ implementieren Anders ausgedrückt, es ist effektiv unmöglich, OCCI direkt mit GCC unter Solaris zu verwenden.
Sie könnten etwas arbeiten, aber alles, was Sie tun, wird im besten Fall äußerst zerbrechlich sein. Das nächste Betriebssystem- oder C++ - Laufzeitupdate kann Probleme verursachen, und Sie können das Problem möglicherweise nicht beheben.
Sofern Sie nicht sehr einfache Anwendungen schreiben, empfehle ich dringend, nur den Solaris Studio Compiler zu verwenden - und sich mit der gesamten Tool-Suite vertraut zu machen, die Performance Profiling, Speicherprüfung und sogar Race Condition Detection umfasst ist meiner Meinung nach den Tools überlegen, die mit GCC verwendet werden.
Der Solaris Studio (SS) -Compiler vermisst mehrere GCC-Funktionen, z. Es hat nichts, was dem Warnungsmodus des GCC nahe kommt. Es gibt keinen Stack-Protector, keinen Fortify-Source-Support. Wenn Sie GCC/Linux Studio/Solaris vergleichen, sind GCCs verschiedene Desinfektionsmittel (Adresse, undefiniertes Verhalten, ...) für die Speicherüberprüfung, Erkennung von Rennbedingungen usw. definitiv besser als die von SS. Ähnliche Dinge können über das Profiling gesagt werden. Darüber hinaus hat SS Schwierigkeiten, aktuelle C++ - Standards zu unterstützen und GCC-Erweiterungen nachzuholen. – maxschlepzig
@maxschlepzig * sind dem, was man mit SS bekommt, definitiv überlegen * Zumindest habe ich klargestellt, dass meine Vorliebe eine Meinung ist und sie nicht mit einer Tatsache verwechselt. FWIW, zuletzt habe ich GCC auf SPARC geschaut noch fehlte irgendwas wie ['-xmemalign = 1i'] (https://docs.oracle.com/cd/E19205-01/819-5265/bjavc/index.html) , also ist der Balken zum Schreiben von Arbeitscode auf SPARC mit GCC viel höher. –
- 1. gcc kompilieren Fehler auf Solaris 10
- 2. Wie findet gcc auf Solaris seine Bibliotheken?
- 3. Header für _blsr_u64 mit Sun geliefert GCC auf Solaris 11?
- 4. Solaris Prozess in Ausfahrt
- 5. Kompilieren OCCI auf "Oracle Linux"
- 6. getopt implizite Deklaration in Solaris?
- 7. Git-Installation auf solaris 9
- 8. Einfügen mehrerer Zeilen in eine Oracle-Datenbank mit OCCI
- 9. TIME_WAIT Akkumulation in Solaris
- 10. get_random_bytes() gleichwertig in Solaris
- 11. Oracle erhalten zuletzt eingefügten Zeile ID mit OCCI und C++
- 12. Letzte Ausführung in awk [Solaris]
- 13. Man Seite Solaris - Neuformatierungsfehler
- 14. Solaris 9 Projekte (Ressourcenverwaltung)
- 15. Erstellung von solaris Zone
- 16. Solaris 10 - Split mit numerischen Suffix
- 17. Solaris Core Dump-Analyse
- 18. Solaris Logadm-Log-Rotation
- 19. ssh mit compat nist auf solaris 10
- 20. Solaris vs Linux
- 21. Heatbeat 2.13 für solaris 10
- 22. GNU Parallel und Solaris 11
- 23. Was ist ein OCCI-Kontext und eine Umgebung?
- 24. lxml Build auf Solaris 10
- 25. Syscall Overhead in Solaris vs Linux
- 26. Spracheinstellungen auf dem Solaris-Computer
- 27. curl: nicht auf Solaris gefunden
- 28. C++ IDE für Solaris SPARC
- 29. Überprüfen Sie den Benutzernamen in Unix/Solaris
- 30. C++ Eingabestream: Operationsreihenfolge in Solaris vs. Linux
Sie müssen es versuchen. C++ ABI ist komplex und es kann zu Problemen kommen. – ibre5041
Haben wir neben der Third-Party-Bibliothek irgendwelche Oracle-Bibliotheken, um dieses Problem zu lösen? –
Meine persönliche Meinung ist, dass es besser ist, andere Open-Source-C++ OCI zu verwenden. Als OCCI. – ibre5041