Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Utilisation d’une bibliothèque C ++ commune avec C ++ Builder et TwineCompile

cpptwinecompilespeed

L’un des nombreux grands avantages de l’utilisation de C ++ pour les applications et les projets est l’accès à la vaste bibliothèque de bibliothèques et de frameworks C ++ disponibles. Fondamentalement, il existe une bibliothèque C ++ pour tout, et s’il n’y en a pas, il y a certainement une bibliothèque C pour cela. 

À l’époque, il était généralement difficile d’intégrer différentes bibliothèques dans des projets C ++ en raison des différences de compatibilité entre les différents compilateurs C ++. Un projet construit avec GCC aurait du mal à se compiler sur VC ++, et un projet construit avec VC ++ aurait du mal à se compiler sur BCC, etc. L’une et l’autre. 

L’utilisation de CLANG par C ++ Builder ne fait pas exception à cette règle. Alors que le compilateur classique a souvent des problèmes avec la syntaxe C ++ moderne, le compilateur CLANG est l’un des compilateurs C ++ les plus conformes aux normes disponibles et, en tant que tel, ouvre le vaste univers des bibliothèques C ++ à vos projets C ++ Builder.  

Cela ne veut pas dire que c’est trivial. Il y a toujours des astuces et des ajustements à faire pour utiliser n’importe quelle bibliothèque dans vos projets, mais par rapport à ce qui était nécessaire auparavant, c’est très simple. 

Dans cet article de blog, nous allons explorer ce qu’il faut pour obtenir une bibliothèque C ++ assez courante, SQLiteCpp, fonctionnant dans un projet C ++ Builder. 

Qu’est-ce que SQLiteCpp 

SQLiteCpp est un wrapper C ++ RAII autour de la bibliothèque C de la base de données sqlite, fournissant une excellente interface C ++ à cette bibliothèque de base de données relationnelle portable presque universelle. 

Sqlite est utilisé dans de nombreuses applications différentes allant des projets intégrés aux applications grand public en tant que base de données intégrée facile à utiliser pour stocker, interroger et récupérer des données de nombreux types différents. 

Nous utiliserons SQLiteCpp pour créer une application simple qui stocke et récupère certaines données dans une application console simple dans C ++ Builder. 

Obtenir la bibliothèque 

SQLiteCpp est hébergé sur Github et le référentiel comprend tous les fichiers nécessaires à la compilation dans votre application.

1. Accédez à https://github.com/SRombauts/SQLiteCpp 

2. Téléchargez la dernière version et extrayez-la dans un dossier 

Mise en place des projets 

SQLiteCpp prend en charge le système de construction CMake, nous pourrions donc l’utiliser pour construire nos bibliothèques avec C ++ Builder, mais il est souvent plus intéressant et direct de simplement créer les projets vous-même. Cela a l’avantage supplémentaire que vous pouvez personnaliser la construction en fonction de votre utilisation. 

3. Créez un répertoire dans le dossier d’extrait appelé cbuilder. Cela contiendra nos fichiers de projet spécifiques à C ++ Builder. La structure de répertoire résultante devrait ressembler à ceci:

4. Nous voulons construire cette bibliothèque en tant que bibliothèque statique que nous pouvons lier à notre application C ++ Builder, alors allez dans RAD Studio et créez un nouveau projet de bibliothèque statique. Enregistrez ce projet sous sqlitecpp.cbproj dans le répertoire cbuilder. 

5. Accédez aux options du projet et activez le compilateur CLANG pour toutes les configurations: 

6. Accédez aux paramètres du bibliothécaire et définissez la taille de page sur 64 (ceci est basé sur l’expérience – si vous ne connaissez pas la taille de page à utiliser, l’éditeur de liens TLIB vous dira si la taille de page doit être ajustée lors de la création. le projet)

Sélection des fichiers sources 

Maintenant que notre projet est configuré, nous devons ajouter les fichiers sources nécessaires dans le projet à compiler. La façon de déterminer les fichiers à inclure diffère pour chaque projet et il faut parfois creuser pour déterminer les bons fichiers. CMakeLists.txt peut certainement vous aider. Les directives suivantes devraient vous aider: 

Pour SQLiteCpp, ce sont les fichiers source: 

7. Ajoutez ces fichiers au projet de bibliothèque. 

Construire la bibliothèque 

Si vous essayez de créer cette bibliothèque maintenant, vous obtiendrez des erreurs similaires aux suivantes:

Nous devons mettre à jour certaines options du projet et définir des chemins d’inclusion. 

8. Définissez le chemin d’inclusion. Vous avez peut-être remarqué que le projet a un répertoire d’inclusion qui est au même niveau que les fichiers src. Ajoutez ce dossier au chemin d’inclusion du projet afin que les en-têtes puissent être trouvés:

 

9. Générez le projet. Il devrait se terminer avec succès. Félicitations, vous avez maintenant votre bibliothèque SQLiteCpp.

Utilisation de la bibliothèque 

Maintenant que nous avons notre bibliothèque, nous pouvons créer une application simple pour la tester. 

10. Créez une nouvelle application console C ++ dans le même groupe de projets. Choisissez la bibliothèque de composants visuels comme cadre pour l’application console afin que nous puissions voir cette bibliothèque fonctionner avec la VCL. 

11. Enregistrez ce projet sous le nom test_sqlite.cbproj dans le dossier cbuilder. 

12. Allez dans les options de projet pour ce projet et ajoutez ..include comme chemin d’inclusion pour ce projet et activez le compilateur CLANG, comme nous l’avons fait pour la bibliothèque SQLiteCpp.  

13. Ajoutez les chemins d’inclusion en haut du fichier C ++ dans notre projet de test: 

[crayon-67439865b89cf568176278/]

Notez que nous avons utilisé le répertoire de liens #pragma pour indiquer au compilateur que nous devons lier la bibliothèque sqlitecpp.lib à partir du projet de bibliothèque. Vous pouvez également simplement ajouter le fichier .lib au projet de test, mais l’utilisation du lien #pragma peut rendre cela plus simple. 

14. Ajoutez maintenant du code pour créer une base de données, insérez des données et relisez-le à nouveau: 

[crayon-67439865b89da635443071/]

15. Enfin, exécutez le projet pour le compiler et voir la bibliothèque en fonctionnement: 

Dernières pensées 

Comme cet exercice simple l’a démontré, C ++ Builder avec le compilateur CLANG ouvre un monde de possibilités pour les différentes bibliothèques et frameworks qui peuvent être intégrés dans vos projets. Nous n’avons pas eu à faire une seule modification de code pour que cette bibliothèque C ++ open source compile et fonctionne dans nos applications C ++ Builder. 

Il existe des milliers d’autres projets C ++ et je peux vous encourager fortement à expérimenter leur utilisation dans vos projets C ++!

Quitter la version mobile