Comment rendre un programme GTK+ totalement indépendant sous Linux ?

Bonjour,

J’ai réussi à faire ça sous Windows en incluant toutes les DLLs de GTK dans le répertoire de mon programme, puis en rajoutant les librairies manquante au fur et à mesure que Code::Blocks ou que la console du programme me sortait “cannot find…” suivi du nom de telle ou telle librairie ou fonctionnalité.

Seulement sous Linux, ça n’a pas l’air d’être aussi simple. Les DDLs sont faites pour fonctionner sous Windows… Du coup, je ne sais pas du tout quoi rajouter dans mon dossier pour que ça marche…

Si quelqu’un pouvait m’expliquer la marche à suivre.

Merci d’avance :slight_smile:
Edité le 07/06/2008 à 08:58

Une DLL est typiquement pour windows, sous Linux (les unix en général) ce sont des fichiers .SO.
C’est comme sous windows :

  • soit tu les ajoutes un par un dans le répertoire de ton appli,
  • soit tu les copies dans le répertoire /usr/local/lib (ou /usr/lib mais plus cochon).

Apres, il te suffit de faire un lien symbolique (ln -s foo.so.2.4.1 foo.so ) pour faire pointer la lib vers la version que tu souhaites utiliser.

et pour GTK+, je fais comment ? :slight_smile:

merci d’avance ^^

En fait, tu as justement mis le doigt sur ce que je voulais faire :

“- soit tu les ajoutes un par un dans le répertoire de ton appli”

Seulement, ce que j’veux ajouter dans mon appli, c’est GTK+ tout entier ! Et je n’ai pas la moindre idée de ce que je doit mettre.
Et c’est ça mon véritable problème. Parce que dans les packs de GTK+, c’est truffé de fichiers DLL, mais il n’y a pas l’ombre d’un fichier .SO …

C’est un peu normal de ne pas trouver de DLL dans un pack GTK pour Linux.
Soi tu prends le code source et tu les compiles soit tu prends des rpm/deb (selon ta distrib) binaires où la, tu auras directement les .so.
Tu peux les trouver sur rpmfind.net par exemple.

Merci, je vais chercher de ce côté là :slight_smile:

EDIT : j’ai fait une recherche, et celle-là semblent être les plus appropriées :

libgtk+2.0_0-devel-2.12.9-2mdv2008.1.i586.html Development files for GTK+ (GIMP ToolKit) applications Mandriva 2008.1 for i586 libgtk+2.0_0-devel-2.12.9-2mdv2008.1.i586.rpm
libgtk+2.0_0-devel-2.12.1-2mdv2008.0.i586.html Development files for GTK+ (GIMP ToolKit) applications Mandriva 2008.0 for i586 libgtk+2.0_0-devel-2.12.1-2mdv2008.0.i586.rpm
libgtk+2.0_0-devel-2.12.0-7mdv2008.0.i586.html Development files for GTK+ (GIMP ToolKit) applications Mandriva 2008.0 for i586 libgtk+2.0_0-devel-2.12.0-7mdv2008.0.i586.rpm
libgtk+2.0_0-devel-2.10.3-5mdv2007.0.i586.html Development files for GTK+ (GIMP ToolKit) applications Mandriva 2007.0 for i586 libgtk+2.0_0-devel-2.10.3-5mdv2007.0.i586.rpm
libgtk+2.0_0-devel-2.10.3-4mdv2007.0.i586.html Development files for GTK+ (GIMP ToolKit) applications Mandriva 2007.0 for i586 libgtk+2.0_0-devel-2.10.3-4mdv2007.0.i586.rpm

Par-contre je prend quelle version ? Je suis sous KUbuntu…
Edité le 07/06/2008 à 22:51

Sour Ubuntu, ce sont des packages type debian, pas des rpm.

Dans un terminal, tape:

sudo apt-get install libgtk2.0-0-dev

Ensuite tu trouveras les .so dans le répertoire gtk-xxx qui devrait se trouver dans le répertoire /usr/lib

Je ne suis pas sûr de mon coup car je suis sous debian et non Ubuntu, mais je crois que l’architecture est la même.
Edité le 07/06/2008 à 23:19

et sinon je dois prendre laquelle pour Gnome ou KDE ? (les PC sur lesquels je dois faire tourner le programme sont sous ces OS)

C’est variable selon ta distrib et non ton windows manager : mandrake, debian, slackware & co.

Bah c’est tous des mandrake je crois…
à vrai dire, j’ai un peu de mal à trouver les .so sur rpmfind.net. Chaque lien me renvoie vers une nouvelle liste de dépendances qui elle même me renvoie vers d’autres lien de recherche qui finalement n’aboutissent à rien :-S
Je commence à désespérer, et j’ai plus beaucoup de temps devant moi…

En plus, sous mon Linux, j’ai pas encore le net (apparemment, y a pas de driver Linux pour ma clé Wi-Fi…), donc ta commande ne risque pas de marcher :-/
Edité le 09/06/2008 à 07:45

Tous des Mandrake ? Euh … bon je vois que Linux & toi, c’est pas trop ça donc prend les sources et compile les, un coup de “./configure && make & make install” devrait faire l’affaire.
Il faut bien évidemment tout ce qu’il faut pour compiler (gcc, autoconf, automake, binutils).