Cette semaine, nous mettons à jour un article qui date de 2013: "Ajouter la librairie C++ à vos projets". Depuis 2013, XCode et Visual Studio ont évolué et d'autres IDE sont arrivés. Voici donc comment inclure notre librairie C++ dans les principaux IDE en 2021.
Avant de voir comment créer un projet C++ et inclure notre librairie, nous vous rappelons que dans le sous-répertoire Examples vous trouvez de nombreux exemples d'utilisations de nos modules y compris des projets déjà configurés pour Visual Studio, Xcode, CMake et Code::Block. Si vous partez de zéro, il est certainement plus simple et rapide d'ouvrir un de ces exemples et de modifier le code. Cependant, si vous désirez partir de zéro ou que vous devez ajouter notre librairie à un projet existant, voici comment ajouter les sources de notre librairie dans les IDE les plus connus.
Pour cet article, nous allons créer une application en C++ en ligne de commande qui va simplement afficher sur la sortie standard tous les modules Yoctopuce connectés sur les ports USB. Nous allons créer un nouveau projet C++, inclure les fichiers sources de la librairie Yoctopuce et écrire les quelques lignes de code de la fonction main. Voici le code de notre petit programme de test.
string errmsg;
if(YAPI::RegisterHub("usb", errmsg) != YAPI_SUCCESS) {
std::cerr << "RegisterHub error: " << errmsg << std::endl;
return 1;
}
std::cout << "Device connected: " << std::endl;
YModule *module = YModule::FirstModule();
while (module != NULL) {
std::cout << module->get_serialNumber() << " ";
std::cout << module->get_productName() << std::endl;
module = module->nextModule();
}
YAPI::FreeAPI();
Xcode 12
Xcode a beaucoup évolué depuis 2013, mais la procédure pour ajouter la librairie Yoctopuce reste la même. Lors de la création du projet, il faut bien sélectionner C++ comme langage. Pour inclure les fichiers sources de notre librairie au projet, la solution la plus simple est de glisser-déposer tous les fichiers du répertoire Sources de la libraire directement dans Navigateur de projet Xcode. Cela va lancer un assistant qui va ajouter les fichiers au projet. N'oubliez pas de sélectionner votre application dans le champ "add to target" de cet assistant, sinon Xcode va inclure les fichiers mais ne les compilera pas. Vous n'avez pas besoin de modifier l'include path (Xcode s'en charge). Avec les dernières versions d'Xcode, il n'est plus nécessaire de linker le code avec les frameworks CoreFundation.framework et IOKit.framework. Xcode s'en charge automatiquement.
Visual Studio C++ 2019
Avec la version 2019 Visual Studio C++ 2019, les choses se sont aussi un peu simplifiées. Il n'est plus nécessaire de changer les paramètres de précompilé header. Pour ajouter les fichiers au projet, la méthode la plus simple est de glisser-déposer les fichiers .h, .cpp et .c directement dans Visual Studio. Attention, si vous ajoutez les fichiers .rc et .txt, ceux-ci seront compilés et génèreront une erreur de compilation.
Visual Studio ne met pas à jour automatiquement l'include path. Il faut donc manuellement ajouter le répertoire où se trouvent les sources de la libraire Yoctopuce dans les propriétés du projet. Pour ce faire, il faut accéder aux propriétés du projet, et dans la section VC++ Directories ajouter le répertoire Source de notre librairie à la propriété Include Directories. Attention, si votre projet a plusieurs configurations, par exemple pour la compilation 32 et 64 bits, il faut changer l'include path pour les deux configurations.
CLion
En interne, CLion utilise CMake pour gérer le processus de build. Comme notre librairie est compatible avec CMake il suffit de référencer dans le fichier CMakeLists.txt principal notre fichier CMakeLists.txt qui se trouve dans le répertoire Sources de notre librairie. Nous avons un article dédié qui explique comment faire: "Compiler la lib C++ avec CMake".
Code::Blocks
Pour Linux nous supportons Code::Blocks depuis la version 10. Avant de créer le projet, il faut s'assurer que la libUSB 1.0 avec ses headers soit aussi installée. Si vous utilisez une distribution qui est basée sur une Debian (Ubuntu, Raspian, etc.) il suffit d'exécuter "sudo apt-get install libusb-1.0-0-dev".
Après avoir créé un projet "command line" avec Code::Block, il faut ajouter les fichiers sources de la librairie Yoctopuce. Pour inclure ces fichiers, le plus simple est d'utiliser la fonction "add files recursively..." et de ne sélectionner que les extensions nécessaires (.h, .cpp et .c). Il faut aussi ajouter le répertoire où se trouvent les sources de la libraire Yoctopuce à l'include path du projet. Enfin, il faut informer le linker que nous avons besoin des libraires usb-1.0 et pthread.
C++ Builder XE4
Comme avec Visual Studio, le plus simple est de glisser-déposer les fichiers directement dans le projet (là aussi il ne faut pas ajouter les fichiers .rc). Pas besoin de modifier l'include path, C++ Builder s'occupe de tout.
Remarques
Dans cet article, nous avons ajouté tous les fichiers C++ qui sont inclus dans la librairie. Cela garantit que vous pouvez utiliser dans votre code toutes les fonctionnalités de n'importe quel module. Si vous voulez diminuer le temps de compilation, vous pouvez inclure uniquement les fichiers des fonctionnalités que vous utilisez. Il faut inclure au minimum yocto_api.cpp, et ensuite le fichier yocto_xxx.cpp correspondant à la fonctionnalité que l'on doit utiliser. Par exemple, si on utilise uniquement un capteur de température et un relais, il faut inclure yocto_api.cpp, yocto_temperature.cpp et yocto_relay.cpp.
Conclusion
Voilà, nous espérons que cela vous permettra d'intégrer plus facilement notre librairie C++ à vos projets. Comme d'habitude, vous pouvez contacter le support (support@yoctopuce.com) ou poster un commentaire si vous avez des difficultés à intégrer notre librairie à vos projets.