<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vincentxavier+%28phorum%29</id>
	<title>Lea Linux - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vincentxavier+%28phorum%29"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Vincentxavier_(phorum)"/>
	<updated>2026-04-26T07:10:54Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Compiler_un_programme&amp;diff=15717</id>
		<title>Compiler un programme</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Compiler_un_programme&amp;diff=15717"/>
		<updated>2008-07-06T17:52:26Z</updated>

		<summary type="html">&lt;p&gt;Vincentxavier (phorum) : Ajout de CMake qui devient de plus en plus populaire&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Gérer ses logiciels]]&lt;br /&gt;
= Compiler une application =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Compiler une application&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jean-Christophe&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Transformer le source d&#039;un programme pour le rendre éxécutable par votre machine.&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Prérequis&amp;lt;/u&amp;gt; : vérifiez que vous avez les [[Kernel-compil|packages nécessaires à la compilation]].&lt;br /&gt;
&lt;br /&gt;
{{Preferer un paquetage|&amp;lt;paquetage&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Pourquoi compiler une application ? ==&lt;br /&gt;
&lt;br /&gt;
Plusieurs raisons à cela :&lt;br /&gt;
&lt;br /&gt;
* vous avez envie d&#039;optimiser une application pour votre CPU par exemple,&lt;br /&gt;
* vous voulez utiliser un matériel spécifique avec votre application (exemple des [[Hardware-hard_image-3dfx|cartes 3Dfx]] qui nécessitent la recompilation de Mesa, ou des [[Hardware-hard_imp-scanner|scanners SCSI]] avec SANE...),&lt;br /&gt;
* vous ne disposez pas de l&#039;application dans sa version précompilée,&lt;br /&gt;
* ça vous fait plaisir :-),&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Pourquoi ne pas compiler ? ==&lt;br /&gt;
&lt;br /&gt;
Si vous ne vous sentez pas à l&#039;aise, le mieux est de prendre les logiciels précompilés de votre distribution, accessibles en général dans un outil en mode graphique (rpmdrake sous Mandriva, synaptic sous Debian, etc.)&lt;br /&gt;
Ainsi vous serez sûr que le logiciel fonctionne sans problème pour votre distribution, car ces logiciels précompilés ont été adaptés spécialement et testés.&lt;br /&gt;
&lt;br /&gt;
Si le logiciel n&#039;est pas disponible dans votre gestionnaire d&#039;installation, vous pouvez également trouver des archives compilées sur le site du logiciel que vous voulez installer (souvent avec l&#039;extension .tar.gz ou .tar.bz2). Dans ce cas, utilisez-les.&lt;br /&gt;
&lt;br /&gt;
== Récupérer les sources ==&lt;br /&gt;
&lt;br /&gt;
Tout d&#039;abord vous devez récupérer les sources de l&#039;application, sous forme d&#039;un fichier &amp;lt;tt&amp;gt;.tar.gz&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;.tgz&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;.tar.bz2&amp;lt;/tt&amp;gt;, ou &amp;lt;tt&amp;gt;.src.rpm&amp;lt;/tt&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
# Vérifiez d&#039;abord si vous avez les sources sur le CD de sources de votre distribution (quand vous avez ce CD).&lt;br /&gt;
# Sinon, vous devrez le récupérer autrement (CD d&#039;une revue, internet ([http://www.freshmeat.net Freshmeat] ou [http://linux.tucows.com Tucows] par exemple), etc.).&lt;br /&gt;
&lt;br /&gt;
Bref, tous les moyens sont bons. Essayez d&#039;avoir la dernière version, tant qu&#039;à faire, puis passez à la suite.&lt;br /&gt;
&lt;br /&gt;
== Compiler les sources ==&lt;br /&gt;
&lt;br /&gt;
La procédure diffère suivant le format des sources.&lt;br /&gt;
&lt;br /&gt;
=== Sources au format &amp;lt;tt&amp;gt;.src.rpm&amp;lt;/tt&amp;gt; ou &amp;lt;tt&amp;gt;.srpm&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
La compilation se fait en une seule ligne de commande généralement, elle génère un package &amp;lt;tt&amp;gt;.i?86.rpm&amp;lt;/tt&amp;gt; (ou &amp;lt;tt&amp;gt;.alpha.rpm&amp;lt;/tt&amp;gt; suivant votre architecture) :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz src]#&#039;&#039;&#039; rpm --rebuild le_package-version.src.rpm&lt;br /&gt;
&lt;br /&gt;
Cela va créer un package au format RPM : &amp;lt;tt&amp;gt;le_package-version.i?86.rpm&amp;lt;/tt&amp;gt; dans le répertoire &amp;lt;tt&amp;gt;/usr/src/RPM/RPMS/i?86&amp;lt;/tt&amp;gt;. Ce répertoire peut différer légèrement suivant la distribution.&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite installer ce package par la commande RPM habituelle :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz i586]#&#039;&#039;&#039; rpm -ivh le_package-version.i586.rpm&lt;br /&gt;
&lt;br /&gt;
=== Sources au format &amp;lt;tt&amp;gt;.tar.*&amp;lt;/tt&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
C&#039;est le format le plus souvent employé pour les sources. Le nom du package est en général le nom du fichier suivi de la version. Par exemple : &amp;lt;tt&amp;gt;xtel-3.2.1.tar.gz&amp;lt;/tt&amp;gt;. &amp;quot;&amp;lt;tt&amp;gt;tgz&amp;lt;/tt&amp;gt;&amp;quot; est une contraction de &amp;quot;&amp;lt;tt&amp;gt;tar.gz&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Décompresser les sources ====&lt;br /&gt;
&lt;br /&gt;
Il faut d&#039;abord décompresser le package dans le répertoire de votre choix. &amp;lt;tt&amp;gt;/usr/src&amp;lt;/tt&amp;gt; me semble un bon choix, mais vous êtes libres.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz root]#&#039;&#039;&#039; cd /usr/src&lt;br /&gt;
 &#039;&#039;&#039;[root@taz root]#&#039;&#039;&#039; tar &#039;&#039;&#039;z&#039;&#039;&#039;xvf /ou/se/trouve/le_package.tar.&#039;&#039;&#039;gz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou bien :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz root]#&#039;&#039;&#039; tar &#039;&#039;&#039;y&#039;&#039;&#039;xvf /ou/se/trouve/le_package.tar.&#039;&#039;&#039;bz2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ou bien :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz root]#&#039;&#039;&#039; tar &#039;&#039;&#039;j&#039;&#039;&#039;xvf /ou/se/trouve/le_package.tar.&#039;&#039;&#039;bz2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Si votre version de tar ne comprend pas la dernière commande, essayez :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz root]#&#039;&#039;&#039; tar --use-compress-program bzip2 \&lt;br /&gt;
                      -xvf /ou/se/trouve/le_package.tar.&#039;&#039;&#039;bz2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Remarque&amp;lt;/u&amp;gt;&#039;&#039;&#039; : avant de décompresser pour de bon l&#039;archive, il peut être bon de la tester, notamment pour vérifier qu&#039;elle va bien se décompresser dans son propre répertoire, en remplaçant la commande &#039;&#039;&#039;&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;&#039;&#039;&#039; (comme e&#039;&#039;&#039;x&#039;&#039;&#039;trait) de tar (ci-dessus) par un &#039;&#039;&#039;&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;&#039;&#039;&#039; (comme &#039;&#039;&#039;t&#039;&#039;&#039;este) :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz root]#&#039;&#039;&#039; tar z&#039;&#039;&#039;t&#039;&#039;&#039;vf /ou/se/trouve/le_package.tgz&lt;br /&gt;
&lt;br /&gt;
Toutes les lignes (la liste des fichiers présents dans l&#039;archive) doivent commencer par &amp;quot;&amp;lt;tt&amp;gt;le_package/...&amp;lt;/tt&amp;gt;&amp;quot; ce qui assure que l&#039;archive se décompressera dans le répertoire du même nom. Dans le cas contraire, créez un répertoire à la main (&amp;lt;tt&amp;gt;mkdir&amp;lt;/tt&amp;gt;) allez-y (&amp;lt;tt&amp;gt;cd&amp;lt;/tt&amp;gt;) puis exécutez la commande &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt; voulue.&lt;br /&gt;
&lt;br /&gt;
==== Compiler les sources ====&lt;br /&gt;
&lt;br /&gt;
La compilation peut différer selon chaque package, car l&#039;auteur est libre de procéder comme bon lui semble. Cependant des standards de fait existent et sont généralement bien suivis : la présence de fichiers &amp;lt;tt&amp;gt;README&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;INSTALL&amp;lt;/tt&amp;gt; dans l&#039;archive.&lt;br /&gt;
&lt;br /&gt;
C&#039;est pourquoi il est fortement recommendé de lire ces fichiers avant de commencer, car ils vont vous expliquer comment compiler. L&#039;un des deux a en général une section &amp;quot;installation&amp;quot; ou &amp;quot;compilation&amp;quot; qui donne les étapes à suivre. Vous pourrez aussi y lire les prérequis (de quelles librairies le logiciel a besoin), les configurations à faire sur votre système pour que l&#039;appli fonctionne, etc.&lt;br /&gt;
&lt;br /&gt;
===== autotools =====&lt;br /&gt;
&lt;br /&gt;
De plus en plus souvent, les archives contiennent un fichier exécutable nommé &amp;quot;&#039;&#039;&#039;&amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt;&#039;&#039;&#039;&amp;quot;. Dans ce cas, la compilation est assez simple, car le programme &amp;quot;&amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt;&amp;quot; détecte les spécificités de votre machine automatiquement. Il suffit généralement de faire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[root@taz appli]# ./configure&lt;br /&gt;
[root@taz appli]# make&lt;br /&gt;
[root@taz appli]# make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et c&#039;est tout ! &amp;lt;br /&amp;gt;Cependant lisez toujours le fichier README, car il faut parfois passer des commandes à &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== qmake =====&lt;br /&gt;
&lt;br /&gt;
Certains projets QT n&#039;utilise pas les &amp;lt;code&amp;gt;autotools&amp;lt;/code&amp;gt;, ils leur préfèrent : &amp;lt;code&amp;gt;qmake&amp;lt;/code&amp;gt;. On repère ces projets par la présence d&#039;un fichier &amp;lt;code&amp;gt;.pro&amp;lt;/code&amp;gt;. Pour pouvoir les compiler, il faut d&#039;abord générer le &amp;lt;code&amp;gt;makefile&amp;lt;/code&amp;gt;, puis procéder habituellement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[root@taz appli]# qmake&lt;br /&gt;
[root@taz appli]# make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Imakefile =====&lt;br /&gt;
&lt;br /&gt;
Dans les cas ou il n&#039;y a pas de script &amp;quot;&amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt;&amp;quot; : &amp;lt;br /&amp;gt;Si vous avez un fichier &#039;&#039;&#039;&amp;lt;tt&amp;gt;Imakefile&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, vous pouvez essayer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[root@taz appli]# xmkmf&lt;br /&gt;
[root@taz appli]# make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== CMake =====&lt;br /&gt;
&lt;br /&gt;
Dans un esprit de portabilité, et pour répondre aux nouvelles demandes, un nouveau système de génération de Makefile est apparu. Il s&#039;agit de CMake.&lt;br /&gt;
&lt;br /&gt;
Ce système a été conçu pour une portabilité maximale, aussi bien sous les systèmes Unix (et Unix like), que pour Mac OS ou pour Windows. La configuration (relative à la recherche des dépendances) réside dans un fichier &amp;lt;tt&amp;gt;CMakeLists.txt&amp;lt;/tt&amp;gt;. Suivant les projets, la procédure sera la suivante :&lt;br /&gt;
&amp;lt;code multi&amp;gt;[root@taz appli]# mkdir build&lt;br /&gt;
[root@taz appli]# cd build&lt;br /&gt;
[root@taz appli]# cmake ..&lt;br /&gt;
[root@taz appli]# make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== autres =====&lt;br /&gt;
&lt;br /&gt;
Enfin s&#039;il n&#039;y a qu&#039;un fichier &#039;&#039;&#039;&amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt;&#039;&#039;&#039; ou &#039;&#039;&#039;&amp;lt;tt&amp;gt;makefile&amp;lt;/tt&amp;gt;&#039;&#039;&#039;, essayez juste :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;[root@taz appli]# make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bref, il y a plein de façons de faire, mais dans tous les cas lisez les fichiers README et autres LISEZMOI.&lt;br /&gt;
&lt;br /&gt;
Parfois, même en suivant bien les recommendations, cela va coincer. C&#039;est souvent dû au fait que les distributions ne placent pas toutes les mêmes choses au même endroit, et que le développeur de l&#039;appli n&#039;a pas la même distribution que vous. Dans ce cas, regardez le fichier qui &amp;quot;coince&amp;quot;, et s&#039;il vous dit qu&#039;il ne trouve pas tel ou tel fichier, recherchez-le sur votre disque dur (utilisez le couple &amp;lt;tt&amp;gt;updatedb&amp;lt;/tt&amp;gt; / &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt;, très pratique), et n&#039;hésitez pas à modifier le fichier source (avec votre éditeur de texte préféré) afin de faire pointer le fichier vers le bon endroit. Vérifiez aussi le &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Trucs &amp;amp; actuces pour les sources utilisant les autotools ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Merci à Fred pour ce pararaphe.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Indiquer où installer les sources ====&lt;br /&gt;
&lt;br /&gt;
Souvent, pour tester un programme récent, vous souhaiterez installez celui-ci ailleurs que la destination par défaut prévue par l&#039;auteur du programme. Si celui-ci utilise les paquetages &amp;lt;tt&amp;gt;autoconf&amp;lt;/tt&amp;gt;, la solution est simple, puisque prévue par le paquetage : il suffit de le dire au script &amp;lt;tt&amp;gt;configure&amp;lt;/tt&amp;gt;. Placez vous dans le résertoire contenant les sources du logiciel, et tapez :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;$ ./configure --prefix=/opt/ma-destination&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut noter que cette méthode indique au script configure quelle est la racine de l&#039;installation, en général l&#039;installation proprement dite créera une arboressence :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;+ma-destination&lt;br /&gt;
   +--&amp;gt; bin&lt;br /&gt;
   +--&amp;gt; share&lt;br /&gt;
     `--&amp;gt; doc&lt;br /&gt;
   +--&amp;gt; etc&lt;br /&gt;
   +--&amp;gt; include&lt;br /&gt;
   +--&amp;gt; lib&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dans laquelle seront effectivement copiés les fichiers nécessaires à la compilation de programme utilisant cette librairie, et les programmes eux-mêmes. &lt;br /&gt;
&lt;br /&gt;
Mais, vous pouvez vouloir préciser beaucoup plus finement le type de l&#039;installation. Par exemple, vous souhaitez que tous vos fichiers de configuration soient stockés dans &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; (c&#039;est le &amp;lt;code&amp;gt;FHS&amp;lt;/code&amp;gt; - File Hierarchy Standard). Alors il faut taper :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;$ ./configure --prefix=/opt/ma-destination --sysconfdir=/etc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour en savoir plus sur les diverses options de &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt;, faites :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ./configure --help | less&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Le script &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; se plaint de l&#039;absence d&#039;une librairie ====&lt;br /&gt;
&lt;br /&gt;
Mais, vous, vous savez que vous l&#039;avez installée dant &amp;lt;code&amp;gt;/opt/devlib&amp;lt;/code&amp;gt; en utilisant une ligne :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;[user@becane src]$ ./configure --prefix=/opt/devlib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; se plaint, c&#039;est qu&#039;il n&#039;est pas capable de trouver la dite librairie ! (Le script a sans doute &amp;quot;oublié&amp;quot; de tester la présence d&#039;un autre script : &amp;lt;code&amp;gt;malib-config&amp;lt;/code&amp;gt; ... ).&lt;br /&gt;
&lt;br /&gt;
Il faut savoir que &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; utilise les variables shell standard &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CFLAGS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CXX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CXXFLAGS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LDFLAGS&amp;lt;/code&amp;gt; pour savoir comment utiliser le compilateur. Donc l&#039;astuce, puisque &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; ne trouve pas la librairie, est de passer par ces variables en précisant par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;[user@becane src]$ export CFLAGS=&amp;quot;-I/opt/devlib/include&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
pour indiquer au compilateur C que les includes sont dans &amp;lt;code&amp;gt;/opt/devlib/include&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code multi&amp;gt;[user@becane src]$ export CXXFLAGS=&amp;quot;-I/opt/devlib/include&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
pour indiquer au compilateur C++ que les includes sont dans &amp;lt;code&amp;gt;/opt/devlib/include&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code multi&amp;gt;[user@becane src]$ export LDFLAGS=&amp;quot;-L/opt/devlib/lib&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
pour indiquer au linker que les librairies sont dans &amp;lt;code&amp;gt;/opt/devlib/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis de relancer &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; avec les options idoines. Ceci règle quelques problèmes seulement, mais il est bon de les connaître avant de râler que les programmes libres c&#039;est bien qu&#039;est-ce que c&#039;est pénible à installer.&lt;br /&gt;
&lt;br /&gt;
Utilisez les variables &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;CXX&amp;lt;/code&amp;gt; pour indiquer à &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; d&#039;utiliser &amp;lt;code&amp;gt;CC&amp;lt;/code&amp;gt; comme compilateur C et &amp;lt;code&amp;gt;CXX&amp;lt;/code&amp;gt; comme compilateur C++.&lt;br /&gt;
&lt;br /&gt;
==== Optimiser pour votre processeur la compilation d&#039;un programme ====&lt;br /&gt;
&lt;br /&gt;
Là c&#039;est simple, il suffit de faire (cf plus paragraphe précédant) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ export CFLAGS=&amp;quot;-mcpu=i686 -O2 -pipe&amp;quot;&lt;br /&gt;
$ export CXXFLAGS=&amp;quot;-mcpu=i686 -O6 -pipe&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
avant de lancer &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt;, pour dire aux compilateurs C et C++ de compiler pour l&#039;architecture &amp;lt;tt&amp;gt;i686&amp;lt;/tt&amp;gt; (pentium pro et pentium II, on peut utiliser &amp;lt;tt&amp;gt;i586&amp;lt;/tt&amp;gt; pour les pentiums, &amp;lt;tt&amp;gt;i486&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;i386&amp;lt;/tt&amp;gt;, et sans doute d&#039;autres options), avec le niveau (&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt;) d&#039;optimisation (pour la vitesse d&#039;exécution) maximum (on peut préciser &amp;lt;tt&amp;gt;Os&amp;lt;/tt&amp;gt; si l&#039;on ne veut pas des optimisations qui augmente la taille de l&#039;exécutable généré). &lt;br /&gt;
&lt;br /&gt;
Quelques fois, le script &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; prévoit des optimisations, par exemple il faut taper :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code mutli&amp;gt;$ ./configure --optimization=yes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utilisez &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; pour le savoir!&lt;br /&gt;
&lt;br /&gt;
On peut d&#039;après les créateurs du compilateur &amp;lt;tt&amp;gt;egcs&amp;lt;/tt&amp;gt; (renommé &amp;lt;tt&amp;gt;gcc 1.1.2&amp;lt;/tt&amp;gt; alias &amp;lt;tt&amp;gt;2.92.2&amp;lt;/tt&amp;gt;) obtenir jusqu&#039;a 30% de performance en plus pour certains (très rares) programmes et au moins 5% de performance en plus... ce peut etre la différence entre une animation fluide et saccadée...&lt;br /&gt;
&lt;br /&gt;
Enfin, il n&#039;est pas recommandé de compiler des programmes vitaux pour la sécurité avec des options non standard, par exemple ne compilez pas votre serveur Apache avec ces options si elles ne sont pas supportées par l&#039;équipe de développement d&#039;Apache ! Sinon, en cas de trou de sécurité dans votre configuration, vous risquez de ne pas être entendu.&lt;br /&gt;
&lt;br /&gt;
=== Autres formats ===&lt;br /&gt;
&lt;br /&gt;
Un volontaire pour [mailto:taz98@altern.org me décrire] la compilation des sources avec d&#039;autres format de packages ?&lt;br /&gt;
&lt;br /&gt;
== Installer le logiciel ==&lt;br /&gt;
&lt;br /&gt;
Je ne vais décrire ici que l&#039;installation d&#039;un logiciel provenant d&#039;une archive .tar.*, car l&#039;installation d&#039;un rpm a déjà été vue.&lt;br /&gt;
&lt;br /&gt;
En fait, là encore, il faut lire les fichiers README et/ou INSTALL.&lt;br /&gt;
&lt;br /&gt;
Cependant, on peut dire que de manière générale, il suffit de faire :&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;[root@taz appli]#&#039;&#039;&#039; make install&lt;br /&gt;
&lt;br /&gt;
pour copier les fichiers binaires, les librairies générées, le fontes, etc. au bon endroit. &amp;lt;br /&amp;gt;Mais chaque appli a ses spécificités qu&#039;il faut prendre en compte pour qu&#039;elle tourne bien (par exemple, modification de certains fichiers de config, etc.). &amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Christophe Cardot le 25/02/2000.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 25/02/2000, Jean-Christophe Cardot&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Vincentxavier (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:EeePC&amp;diff=15385</id>
		<title>Discussion:EeePC</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:EeePC&amp;diff=15385"/>
		<updated>2008-05-14T20:18:57Z</updated>

		<summary type="html">&lt;p&gt;Vincentxavier (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test du wiki&lt;/div&gt;</summary>
		<author><name>Vincentxavier (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=EeePC&amp;diff=15384</id>
		<title>EeePC</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=EeePC&amp;diff=15384"/>
		<updated>2008-05-14T20:16:14Z</updated>

		<summary type="html">&lt;p&gt;Vincentxavier (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Configurer votre matériel]]&lt;br /&gt;
= EeePC =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;l&#039;EeePC d&#039;Asus&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par Jice&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Un ultraportable sous Linux, et à ce prix là, Léa ne pouvait pas laisser passer ça, surtout après avoir été la vedette du stand Léa du Solutions Linux 2008&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Alors ca y est j&#039;ai craqué pour un EeePC. Enfin, ca fait un bout de temps déjà. Connaisseur de Linux depuis 1994, et aujourd&#039;hui utilisateur de Mandriva, je l&#039;ai pourtant laissé sous sa distribution de base, une Xandros modifiée par Asus, et en mode facile (Easy Mode) qui plus est. Pourquoi ? Car cela me convient ;-)&lt;br /&gt;
&lt;br /&gt;
Avec quelques outils dont on parlera plus bas, et quelques améliorations que je détaillerai aussi (par exemple l&#039;utilisation du bluetooth pour transférer des fichiers avec mon téléphone portable), c&#039;est parfait pour l&#039;utilisation que j&#039;en ai : surfer avec [http://www.mozilla-europe.org/fr/products/firefox/ Firefox], messagerie instantanée avec [http://www.pidgin.im/ Pidgin] et webcam avec Skype - je suis expatrié, bien sûr la bureautique avec [http://fr.openoffice.org/ OpenOffice.org] (le clavier est petit mais très utilisable). J&#039;ai aussi installé Google Earth, et je fragge même des bots avec [http://assault.cubers.net/ Assault cube] pour me défouler le soir... [http://amarok.kde.org/ Amarok] est parfait pour écouter ma musique (dois-je préciser que j&#039;ai ajouté une SDHC de 16 Go ?) ; j&#039;ai même visionné un film en avion depuis mon disque dur externe 2.5 pouces...&lt;br /&gt;
&lt;br /&gt;
Bref, finalement beaucoup d&#039;utilisation pour peu de bidouille, et aussi l&#039;irremplaçable temps de démarrage de Xandros par rapport aux autres distributions sur EeePC me font pour le moment rester fidèle aux logiciels livrés avec mon joujou (ceci dit je testerai la Mandriva 2008.1 sur ma carte SD, car on en dit beaucoup de bien ; j&#039;en parlerai aussi ici :-)&lt;br /&gt;
&lt;br /&gt;
Si vous avez des idées d&#039;articles, vous pouvez participer en les écrivant ici (Léa est un wiki après tout !), ou poser des questions et faire des demandes dans la [[Discuter:EeePC|page de discussion]].&lt;br /&gt;
&lt;br /&gt;
== Outils ==&lt;br /&gt;
[[Launcher tools#SimpleUI Editor|SimpleUI Editor]] et [[Easy Mode Editor]] : l&#039;interface d&#039;Asus Easy Mode n&#039;est pas configurable simplement (ajouter une icône, créer un sous-répertoire...). Ces logiciels comblent ce manque.&lt;br /&gt;
&lt;br /&gt;
[[Launcher tools]] : créer une nouvelle icône au format EeePC, rafraîchir l&#039;interface Easy Mode sans relancer la machine ni même X Window...&lt;br /&gt;
&lt;br /&gt;
[[TweakEEE]] : plein de bidouilles automatisées, des installations de logiciels supplémentaires...&lt;br /&gt;
&lt;br /&gt;
[[Theeemer]] : changer le thème graphique de l&#039;EeePC (fond d&#039;écrans, gestionnaire de fenêtres, couleurs...)&lt;br /&gt;
&lt;br /&gt;
== Tutoriels et Trucs &amp;amp; astuces ==&lt;br /&gt;
&lt;br /&gt;
les outils présentés ci-dessus on rendus inutiles un grand nombre de tutoriels qu&#039;on trouve sur le net. Néanmoins, il reste quelques manipulations à faire manuellement.&lt;br /&gt;
&lt;br /&gt;
[[Bluetooth sur EeePC]]&lt;br /&gt;
&lt;br /&gt;
[[Un FPS sur l&#039;EeePC : Assault Cube]]&lt;br /&gt;
&lt;br /&gt;
[[Lancement de logiciels au démarrage sur EeePC]]&lt;br /&gt;
&lt;br /&gt;
[[Déplacer une fenêtre trop grande sur l&#039;EeePC]]&lt;br /&gt;
&lt;br /&gt;
[[GoogleEarth sur l&#039;EeePC]]&lt;br /&gt;
&lt;br /&gt;
== Liens ==&lt;br /&gt;
&lt;br /&gt;
=== Les blogs ===&lt;br /&gt;
Je les lis presque tous les jours, car le monde de l&#039;EeePC bouge vite.&lt;br /&gt;
en français :&lt;br /&gt;
* [http://www.blogeee.net/ Blogeee.net]&lt;br /&gt;
* [http://www.eeepc-logiciels.com/ EeePc Logiciels]&lt;br /&gt;
* [http://www.eee-pc.fr/ EeePc-FR]&lt;br /&gt;
* [http://leeenux.blogspot.com/ Leeenux]&lt;br /&gt;
* [http://tuxeee.org/ Tuxeee]&lt;br /&gt;
* [http://nawer.freecontrib.org/index.php BlogORabais]&lt;br /&gt;
en anglais :&lt;br /&gt;
* [http://www.eeeuser.com/ EeeUser.com]&lt;br /&gt;
* [http://www.3eportal.com/ 3eportal], des outils pour EeePC&lt;br /&gt;
&lt;br /&gt;
=== Les wikis ===&lt;br /&gt;
Ils regroupent des tutoriels pour aller plus loin.&lt;br /&gt;
en français :&lt;br /&gt;
* [http://wikeee.fr/index.php/Accueil Wikeee]&lt;br /&gt;
en anglais :&lt;br /&gt;
* [http://wiki.eeeuser.com/ EeeUser wiki]&lt;/div&gt;</summary>
		<author><name>Vincentxavier (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:S%27identifier_par_une_cl%C3%A9_USB&amp;diff=15058</id>
		<title>Discussion:S&#039;identifier par une clé USB</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:S%27identifier_par_une_cl%C3%A9_USB&amp;diff=15058"/>
		<updated>2007-11-14T10:37:51Z</updated>

		<summary type="html">&lt;p&gt;Vincentxavier (phorum) : Utilisation avec {g,k,x}dm ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A faire sur cet article ==&lt;br /&gt;
&lt;br /&gt;
Cet article n&#039;est pas tout à fait terminé, il faut encore :&lt;br /&gt;
* le relire et corriger les erreurs&lt;br /&gt;
* vérifier que tout se passe comme décrit sur une Debian&lt;br /&gt;
&lt;br /&gt;
== Utilisation avec {g,k,x}dm ? ==&lt;br /&gt;
&lt;br /&gt;
Je ne suis pas sur pour xdm et gdm, mais kdm utilises aussi pam. On doit donc pouvoir se connecter en utilisant n&#039;importe quel module pam. En particulier, j&#039;utilise pam_ldap et ca fonctionne. &lt;br /&gt;
&lt;br /&gt;
Cordialement&lt;/div&gt;</summary>
		<author><name>Vincentxavier (phorum)</name></author>
	</entry>
</feed>