L'IDE Geany et Yoctopuce

L'IDE Geany et Yoctopuce

Cette semaine, nous allons parler de l'IDE Geany. Cet IDE fait partie des outils préinstallés sur Raspberry Pi et permet entre autres d'écrire du code Python et C/C++. Nous allons voir comment utiliser nos librairies dans cet IDE et estimer si c'est une bonne idée.





Autant le dire tout de suite, Geany est très limité. Cet IDE est plus proche d'un éditeur de texte que d'un véritable IDE, comme Visual Studio, xcode ou InteliJ. Mais, comme il est préinstallé sur les Raspberry Pi, il jouit d'une certaine notoriété.

Programmer en C++

Geany permet de programmer en C ou C++, mais le support est très limité. La documentation de Geany explique comment écrire et compiler un programme "Hello world", mais écrire un programme en C++ plus complexe n'est pas vraiment réaliste.

Le problème est que Geany n'a pas de véritable système de build, il se contente de fournir trois commandes qui permettent de compiler/builder et exécuter le programme.

Les paramètres de compilation sont très limités
Les paramètres de compilation sont très limités



C'est suffisant pour compiler un programme qui n'a que deux fichiers sources, mais s’il faut inclure des librairies externes ou compiler des dizaines de fichiers, cela devient ingérable. Par exemple, pour compiler notre libraire C++, il faudrait inclure plus de 100 noms de fichier dans la commande de compilation, ce qui la rendrait illisible.

Pour pallier à cette limitation, la solution est d'utiliser un système de build externe comme Make de GNU. Dans ce cas, Geany lance Make au lieu du compilateur. Make génère ensuite la compilation et la gestion des dépendances entre les différents fichiers sources. C'est un outil très puissant, mais qui peut être assez difficile à prendre en main si l'on n'a pas l'habitude.

Voici par exemple un makefile GNU qui compile le fichier main.cpp avec notre librairie. Il faut simplement modifier les premières lignes avec le bon path.

# update with the path of the Yoctopuce lib YOCTOPUCE_DIR = /home/yocto/tmp/yoctolib_cpp # update with the name of your app APP_BIN = main #detect the correct version of the Yoctopuce lib ARCH := $(shell uname -m| sed -e s/i.86/i386/ -e s/arm.*/arm/) ifeq ($(ARCH), x86_64) YOCTOPUCE_LIB = ${YOCTOPUCE_DIR}/Binaries/linux/x86_64/libyocto-static.a else ifeq ($(ARCH),i386) YOCTOPUCE_LIB = ${YOCTOPUCE_DIR}/Binaries/linux/i386/libyocto-static.a else ifeq ($(ARCH),aarch64) YOCTOPUCE_LIB = ${YOCTOPUCE_DIR}/Binaries/linux/aarch64/libyocto-static.a else YOCTOPUCE_LIB = ${YOCTOPUCE_DIR}/Binaries/linux/armhf/libyocto-static.a endif YOCTO_API_SRC = ${YOCTOPUCE_DIR}/Sources OPTS_LINK = -lm -lpthread -lusb-1.0 all: $(APP_BIN) $(APP_BIN) : main.cpp $(YOCTOPUCE_LIB) @g++ -o $@ main.cpp -I$(YOCTO_API_SRC) ${YOCTOPUCE_LIB} $(OPTS_LINK) $(YOCTOPUCE_LIB): @echo recompiling Yoctopuce C++ lib $@ @make -C ${YOCTOPUCE_DIR}/Binaries clean: @rm -rf $(APP_BIN) *.o



Un fois ce fichier sauvé dans le même répertoire que le fichier main.cpp, il est possible de compiler l'application directement depuis Geany en utilisant la commande "Build"->"Make" ou le raccourci clavier Shift-F9.

Cette solution ressemble plus à un hack qu'à une véritable intégration. Geany est donc à déconseiller au programmeur débutant.

Si vous cherchez un IDE C++ qui fonctionne sous Linux, il est préférable de se tourner vers Code::Blocks qui est un véritable IDE. Du reste, les exemples C++ fournis avec la libraire Yoctopuce incluent un projet Code::Blocks. Cela vous permet de recompiler et de debugger facilement nos programmes d'exemple.

Programmer en Python


Pour Python, Geany est beaucoup plus intéressant car il n'y a pas besoin de compiler les fichiers sources. Comme indiqué dans notre tutoriel Python, il faut simplement installer la librairie Yoctopuce manuellement ou à l'aide de pip. Une fois cette étape réalisée, on peut utiliser Geany comme n'importe quel autre IDE Python.

Geany est moins complet et évolué que PyCharm ou Visual Studio Code, mais pour réaliser une petite application sous Raspberry Pi, c'est largement suffisant.

Geany a plus de sens pour les projets Python
Geany a plus de sens pour les projets Python



Conclusion


Geany est un IDE sympathique, mais très limité. Nous le déconseillons pour le développement C ou C++, car il manque un véritable système de build.

Cependant, pour le développement Python, Geany est tout à fait viable. Sans être au niveau des IDE plus connus, il a l'avantage d'être préinstallé sur Raspberry Pi.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.