Logiciels Libres et Systèmes Embarqués


6.6. Ajout de bibliothèques

Maintenant que nous avons un système de base nous pouvons, si on le souhaite, ajouter quelques bibliothèques. La procédure d'installation diffère souvent d'un projet à l'autre, il faut donc bien faire attention aux particularités de chacun.

6.6.1. Exemple avec NCurses-5.4

La bibliothèque NCurses permet la manipulation du terminal, elle offre ainsi la possibilité d'afficher des menus, des cadres, et autres objets permettant la création d'interfaces structurées en mode texte.

Pour l'installer, que ce soit en statique ou en partagé, il suffit de lancer les commande suivantes :

bash# CC=powerpc-linux-uclibc-gcc                \
      ./configure --with-shared                  \
                  --host=i686-pc-linux-gnu       \
                  --with-build-gcc=/usr/bin/gcc  \
                  --target=powerpc-linux-uclibc  \
                  --without-ada                  \
                  --prefix=$SYSROOT/usr/
bash# make

Comme trop souvent dans le monde de la compilation croisée, on obtient des incohérences entre l'utilisation du compilateur de la cible et celui de l'hôte. Dans notre cas, NCurses compile des programmes qui permettent de générer différents fichiers qui lui sont indispensables lors de la phase de compilation. Malheureusement, il les a compilés avec le compilateur de la cible (alors même qu'on lui a précisé --with-build-gcc), donc ces programmes ne peuvent pas fonctionner sur notre hôte... La solution consiste à prendre ceux issus d'une compilation non croisée et à lancer la commande qui a échouée :

bash# cp ~/Tmp/ncurses-5.4/ncurses/make_keys ncurses/
bash# cp ~/Tmp/ncurses-5.4/ncurses/make_hash ncurses/
bash# ./ncurses/make_keys ncurses/keys.list > ncurses/init_keytry.h
bash# make all install

Nous retombons ensuite sur le même problème, et la solution est identique :

bash# cp ~/Tmp/ncurses-5.4/progs/tic progs/
bash# make install

6.6.2. Exemple avec Zlib-1.2.2

La Zlib est la bibliothèque de [dé]compression la plus utilisée dans les système GNU/Linux. Si on souhaite installer la version statique, il faut effectuer les commandes suivantes :

bash# CC=powerpc-linux-uclibc-gcc \
      ./configure --prefix=/opt/powerpc-linux-uclibc/sysroot/usr/
bash# make
bash# make install

En ce qui concerne la version partagée, il faut faire :

bash# CC=powerpc-linux-uclibc-gcc \
      ./configure --prefix=/opt/powerpc-linux-uclibc/sysroot/usr/ \
                  --shared
bash# make
bash# make install

Maintenant, si on veut utiliser la version statique, il suffit de compiler son programme de la manière suivante :

bash# powerpc-linux-uclibc-gcc test.c -static $SYSROOT/usr/lib/libz.a

Enfin, si on souhaite utiliser la version partagée, il suffit de préciser :

bash# powerpc-linux-uclibc-gcc test.c -lz