Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeC++

Verwenden einer allgemeinen C ++ – Bibliothek mit C ++ Builder und TwineCompile

cpptwinecompilespeed

Einer der vielen großen Vorteile der Verwendung von C ++ für Anwendungen und Projekte ist der Zugriff auf die umfangreiche Bibliothek der verfügbaren C ++ – Bibliotheken und Frameworks. Grundsätzlich gibt es für alles eine C ++ – Bibliothek, und wenn nicht, gibt es definitiv eine C-Bibliothek dafür. 

Früher war es im Allgemeinen eine Herausforderung, verschiedene Bibliotheken in C ++ – Projekte zu integrieren, da die Kompatibilität zwischen verschiedenen C ++ – Compilern unterschiedlich war. Ein mit GCC erstelltes Projekt hätte Probleme beim Kompilieren auf VC ++, und ein mit VC ++ erstelltes Projekt hätte Probleme beim Kompilieren auf BCC usw. Zum Glück haben wir seit jenen Tagen einen langen Weg zurückgelegt, und der C ++ – Compiler ist jetzt in erheblichem Maße kompatibel mit gegenseitig. 

Die Verwendung von CLANG durch C ++ Builder ist keine Ausnahme. Während der klassische Compiler häufig Probleme mit der modernen C ++ – Syntax hat, ist der CLANG-Compiler einer der standardkonformsten verfügbaren C ++ – Compiler und eröffnet Ihren C ++ Builder-Projekten das umfangreiche Universum an C ++ – Bibliotheken.  

Das heißt nicht, dass es trivial ist. Es gibt immer einige Tricks und Optimierungen, die Sie tun müssen, um eine Bibliothek in Ihren Projekten zu verwenden, aber im Vergleich zu dem, was vorher notwendig war, ist es kinderleicht. 

In diesem Blog-Beitrag werden wir untersuchen, was erforderlich ist, um eine ziemlich häufige C ++ – Bibliothek, SQLiteCpp, zu erhalten, die in einem C ++ Builder-Projekt funktioniert. 

Was ist SQLiteCpp? 

SQLiteCpp ist ein C ++ – RAII-Wrapper für die SQLite-Datenbank-C-Bibliothek und bietet eine hervorragende C ++ – Schnittstelle zu dieser fast universellen tragbaren relationalen Datenbankbibliothek. 

Sqlite wird in vielen verschiedenen Anwendungen verwendet, von eingebetteten Projekten bis hin zu Mainstream-Anwendungen, als benutzerfreundliche integrierte Datenbank zum Speichern, Abfragen und Abrufen von Daten vieler verschiedener Typen. 

Wir werden SQLiteCpp verwenden, um eine einfache Anwendung zu erstellen, die einige Daten in einer einfachen Konsolenanwendung in C ++ Builder speichert und abruft. 

Die Bibliothek erhalten 

SQLiteCpp wird auf Github gehostet und das Repository enthält alle Dateien, die zum Kompilieren in Ihre Anwendung erforderlich sind.

1. Gehen Sie zu https://github.com/SRombauts/SQLiteCpp 

2. Laden Sie die neueste Version herunter und extrahieren Sie sie in einen Ordner 

Projekte einrichten 

SQLiteCpp unterstützt das CMake-Build-System, sodass wir damit unsere Bibliotheken mit C ++ Builder erstellen können. Oft ist es jedoch interessanter und direkter, die Projekte einfach selbst zu erstellen. Dies hat den zusätzlichen Vorteil, dass Sie den Build an Ihre Verwendung anpassen können. 

3. Erstellen Sie im Extraktordner ein Verzeichnis mit dem Namen cbuilder. Dies enthält unsere C ++ Builder-spezifischen Projektdateien. Die resultierende Verzeichnisstruktur sollte folgendermaßen aussehen:

file1-2

4. Wir möchten diese Bibliothek als statische Bibliothek erstellen, die wir mit unserer C ++ Builder-Anwendung verknüpfen können. Gehen Sie also zu RAD Studio und erstellen Sie ein neues statisches Bibliotheksprojekt. Speichern Sie dieses Projekt als sqlitecpp.cbproj im Verzeichnis cbuilder. 

5. Gehen Sie in die Projektoptionen und aktivieren Sie den CLANG-Compiler für alle Konfigurationen: 

file2

6. Gehen Sie zu den Einstellungen des Bibliothekars und stellen Sie die Seitengröße auf 64 ein (dies basiert auf Erfahrung. Wenn Sie die zu verwendende Seitengröße nicht kennen, teilt Ihnen der TLIB-Linker mit, ob die Seitengröße beim Erstellen angepasst werden muss das Projekt)

file3

Auswahl der Quelldateien 

Nachdem wir unser Projekt eingerichtet haben, müssen wir dem zu kompilierenden Projekt die erforderlichen Quelldateien hinzufügen. Die Art und Weise, zu bestimmen, welche Dateien eingeschlossen werden sollen, ist für jedes Projekt unterschiedlich, und manchmal muss etwas gegraben werden, um die richtigen Dateien zu ermitteln. CMakeLists.txt kann definitiv dabei helfen. Die folgenden Richtlinien sollten helfen: 

  • Suchen Sie nach einem src-Verzeichnis. Dateien mit der Erweiterung .c, .cpp oder .cxx sind die Quelldateien
  • Ignorieren Sie Dateien, die eine main () -Methode enthalten. Dies sind im Allgemeinen Test-, Demo- oder Beispieldateien, die als eigenständige Anwendungen gedacht sind. 

Für SQLiteCpp sind dies die Quelldateien: 

  • sqlite3 / sqlite3.c 
  • src / Transaction.cpp 
  • src / Backup.cpp 
  • src / Column.cpp 
  • src / Database.cpp 
  • src / Exception.cpp 
  • src / Statement.cpp 

7. Fügen Sie diese Dateien dem Bibliotheksprojekt hinzu. 

Aufbau der Bibliothek 

Wenn Sie jetzt versuchen würden, diese Bibliothek zu erstellen, würden Sie einige Fehler erhalten, die den folgenden ähnlich sind:

file4

Wir müssen einige Projektoptionen aktualisieren und einige Include-Pfade festlegen. 

8. Legen Sie den Include-Pfad fest. Möglicherweise haben Sie bemerkt, dass das Projekt über ein Include-Verzeichnis verfügt, das sich auf derselben Ebene wie die src-Dateien befindet. Fügen Sie diesen Ordner dem Projekteinschlusspfad hinzu, damit die Header gefunden werden können:

file5

 

9. Erstellen Sie das Projekt. Es sollte erfolgreich abgeschlossen werden. Herzlichen Glückwunsch, Sie haben jetzt Ihre SQLiteCpp-Bibliothek.

file6

Verwenden der Bibliothek 

Nachdem wir unsere Bibliothek haben, können wir eine einfache Anwendung erstellen, um sie zu testen. 

10. Erstellen Sie eine neue C ++ – Konsolenanwendung in derselben Projektgruppe. Wählen Sie die Visual Component Library als Framework für die Konsolenanwendung aus, damit diese Bibliothek mit der VCL funktioniert. 

11. Speichern Sie dieses Projekt als test_sqlite.cbproj im Ordner cbuilder. 

12. Gehen Sie in die Projektoptionen für dieses Projekt und fügen Sie ..include als Include-Pfad für dieses Projekt hinzu und aktivieren Sie den CLANG-Compiler, genau wie wir es für die SQLiteCpp-Bibliothek getan haben.  

13. Fügen Sie in unserem Testprojekt die Include-Pfade oben in die C ++ – Datei ein: 

Beachten Sie, dass wir das Linkverzeichnis #pragma verwendet haben, um dem Compiler mitzuteilen, dass die Bibliothek sqlitecpp.lib aus dem Bibliotheksprojekt verknüpft werden muss. Alternativ können Sie die .lib-Datei auch einfach zum Testprojekt hinzufügen. Die Verwendung des Links #pragma kann dies jedoch vereinfachen. 

14. Fügen Sie nun Code hinzu, um eine Datenbank zu erstellen, fügen Sie einige Daten ein und lesen Sie sie erneut aus: 

15. Führen Sie abschließend das Projekt aus, um es zu kompilieren und die Bibliothek in Betrieb zu sehen: 

file7

Abschließende Gedanken 

Wie diese einfache Übung gezeigt hat, eröffnet C ++ Builder mit dem CLANG-Compiler eine Vielzahl von Möglichkeiten für die verschiedenen Bibliotheken und Frameworks, die in Ihre Projekte integriert werden können. Wir mussten keine einzige Codeänderung vornehmen, damit diese Open-Source-C ++ – Bibliothek kompiliert und in unseren C ++ Builder-Anwendungen funktioniert. 

Es gibt Tausende anderer C ++ – Projekte, und ich kann Ihnen dringend empfehlen, mit deren Verwendung in Ihren C ++ – Projekten zu experimentieren!


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Zusammenhängende Posts
BeiträgeC++DelphiRAD Studio

RAD Studio 11 kommt: Ankündigung einer neuen Versionsnummer und Beta-Einladung für Kunden mit Update-Abonnement

DelphiShowcase

Treffen Sie Xpand - schön, einfach und es macht total süchtig

DelphiShowcase

Diese spannende Anwendung zur Spielbewertung ist in Delphi integriert

DelphiShowcase

Leistungsstarke Bluetooth-Steuerungs-App zeigt die Flexibilität von Delphi

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES