<p class="spip">Vous programmez ou aimeriez vous initier à la programmation ? Vous voulez un langage simple et puissant ? Avec un environnement de programmation très accueillant ? Et qui produit indifférament du code pour <strong class="spip">Linux</strong> et <strong class="spip">Windows</strong> ? Et tout ça gratuitement ?</p>

<dl class='spip_document_750 spip_documents spip_documents_center' >
<dt><img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/lazarus-ide.jpg' width='500' height='279' alt='JPEG - 29.8 ko' /><dt>
<dt class='spip_doc_titre' style='width:350px;'><strong>L’IDE de Lazarus</strong></dt>
</dl>
<p class="spip">Mais non vous ne rêvez pas mes petits pingouins !! Ca existe et ça marche plutôt bien.</p>

<p class="spip"><strong class="spip">Lazarus</strong> (gpl) est un clone du célèbre <strong class="spip">Delphi</strong>. C’est un environnement de programmation très souple, simple et productif qui peut compiler du code pour Linux ou Windows.</p>

<p class="spip">Le langage employé est le <strong class="spip">free-pascal</strong>, clone du re : célèbre <strong class="spip">turbo-pascal</strong> auquel on a ajouté toutes les libs nécessaires pour programmer n’importe quoi : du programme de haut niveau jusqu’aux profondeurs des modules kernel mélangeants pascal et assembleur.</p>

<p class="spip">Oubliez le vilain Kylix, on s’embarque pour Lazarus.</p>

<hr>
<p class="spip">Lazarus est disponible pour Linux (RPM), pour Windows (EXE) et au format source (GPL). On le trouve à l’adresse :</p>

<p class="spip"><a href="http://sourceforge.net/project/showfiles.php?group_id=89339" class="spip_url spip_out">http://sourceforge.net/project/show...</a></p>

<p class="spip">pour Windows, on va dans Lazarus Windows Binaries et on récupère :
<br /></p>
<li> fpc-2.0.2a.i386-win32.exe
<br /><li> Lazarus-0.9.10-20051002-win32.exe
<p class="spip">Pour Linux, on va dans le chapitre "Lazarus 0.9.10 RPM" et on récupère :</p>

<li> fpc-2.0.1-050923.i386.rpm
<br /><li> fpcsrc-2.0.1-050923.i386.rpm
<br /><li> lazarus-0.9.10-0.i386.rpm
<hr>
<p class="spip">Pour Windows, l’installation est élémentaire. No comment !</p>

<hr>
<p class="spip">Pour Linux Mandrake (testé sur 10.1, 10.2 et 2006), on clique successivement sur les trois paquets RPM et le système se charge de faire la résolution des dépendances.</p>

<hr>
<p class="spip">Pour Linux Debian ou Ubuntu 5.10, l’affaire se complique car il n’existe pas de paquets DEB.</p>

<hr>
<h3>Installation sur Ubuntu 5.10</h3>
<p class="spip">Je vous préviens tout de suite, je n’ai pas été capable d’installer correctement Lazarus sur <strong class="spip">Ubuntu 5.10 AMD64</strong>. Je ne décris ici que l’installation sur Ubuntu 5.10. Sur une Debian stable, c’est probablement pareil.</p>

<p class="spip"><strong class="spip">Préparation du terrain :</strong></p>

<p class="spip">On lance synaptic et on installe les paquets suivants :</p>

<li> alien
<br /><li> libglib1.2
<br /><li> libgtk1.2
<br /><li> libgdk-pixbuf2
<br /><li> libglib1.2-dev
<br /><li> gdk-imlib1-dev
<br /><li> libgdk-pixbuf-dev
<p class="spip"><strong class="spip">Conversion des paquets RPM en DEB :</strong></p>

<p class="spip">Dans une console :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>piou@bureau3:~/download/lazarus$ sudo alien -c fpc-2.0.1-050923.i386.rpm<br />
Password:*************<br />
fpc_2.0.1-50924_i386.deb generated<br />
<br />
piou@bureau3:~/download/lazarus$ sudo alien -c fpcsrc-2.0.1-050923.i386.rpm<br />
fpcsrc_2.0.1-50924_i386.deb generated<br />
<br />
piou@bureau3:~/download/lazarus$ sudo alien -c lazarus-0.9.10-0.i386.rpm<br />
lazarus_0.9.10-1_i386.deb generated</code></div>
<p class="spip">C’est bon, les paquets RPM sont transformés en paquets DEB.</p>

<p class="spip"><strong class="spip">Installation les paquets DEB :</strong></p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>piou@bureau3:~/download/lazarus$ sudo dpkg -i fpc_2.0.1-50924_i386.deb<br />
Dépaquetage de fpc (à partir de fpc_2.0.1-50924_i386.deb) ...<br />
Paramétrage de fpc (2.0.1-50924) ...<br />
<br />
piou@bureau3:~/download/lazarus$ sudo dpkg -i fpcsrc_2.0.1-50924_i386.deb<br />
Dépaquetage de fpcsrc (à partir de fpcsrc_2.0.1-50924_i386.deb) ...<br />
Paramétrage de fpcsrc (2.0.1-50924) ...<br />
<br />
piou@bureau3:~/download/lazarus$ sudo dpkg -i lazarus_0.9.10-1_i386.deb<br />
Dépaquetage de lazarus (à partir de lazarus_0.9.10-1_i386.deb) ...<br />
Paramétrage de lazarus (0.9.10-1) ...</code></div>
<p class="spip">C’est fini ! Allez, on essaye : <code class='spip_code' dir='ltr'>piou@bureau3:~$ lazarus</code></p>

<p class="spip">Et voilà. Normalement on a un magnifique Lazarus 99% compatible Delphi 6 qui nous permet de construire rapidement nos applications pour Linux aussi simplement que si on était sous Delphi Windows.</p>

<p class="spip">Cerise sur le gâteau : à condition de ne pas faire d’appels systeme (TProcess) on a un source qui compile aussi bien sous Linux que sous Windows (avec Lazarus Windows bien sûr ;-).</p>

<p class="spip">On finalise le tout en mettant sur le bureau un raccourci vers /usr/bin/lazarus.</p>

<hr>
<p class="spip"><u>Attention :</u> Lazarus n’est pas capable de reprendre directement le code source de Delphi. Mais on peut pourtant réécrire le code source à l’identique et généralement, ça marche !</p>

<p class="spip">Tous les sources que vous trouverez pour Delphi fonctionneront donc probablement sous Lazarus (sauf les appels systèmes qui changent bien sûr en passant de Windows à Linux).</p>

<p class="spip">Pour ceux qui font leurs premiers pas, voilà un site sympatique qui vous tiendra la main dans le bac à sable : 
<a href="http://fbeaulieu.developpez.com/guide/sommaire.html" class="spip_url spip_out">http://fbeaulieu.developpez.com/gui...</a></p>

<p class="spip">Pour les autres, vous trouverez de nombreux exemples sur <a href="http://www.phidels.com/php/index.php3" class="spip_url spip_out">http://www.phidels.com/php/index.php3</a> ou dans /usr/lib/lazarus/examples</p>

<p class="spip">Vous trouvez que les binaires produits par Lazarus sont trop gros ? Oui, c’est normal car par défaut, le compilateur génère tous les identificateurs de débugage. Alors, on vire tout ça :</p>

<p class="spip"><code class='spip_code' dir='ltr'>strip --strip-all project1</code></p>

<p class="spip">et votre binaire va maigrir un grand coup. Haaa...</p>

<p class="spip">Alors on dit merci qui ? Merci Coagul !</p>

<p class="spip"><small><small>Grâce à Lazarus, je revi (facile celle là ! :-)</small></small></p>