Afficher une simple fenetre avec X11 (Xforms)

Résolu
Mcodi Messages postés 2 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 6 mai 2009 - 5 mai 2009 à 20:38
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 14 mai 2009 à 19:25
Bonjour

Je débute avec la programmation en C et en environnement linux (Linux scientific), je travaille avec la bibliothèque X11 pour afficher une simple fenêtre avec un bouton (Xforms).

Le code est comme suit :

#################################################

#include "forms.h"



int main(int argc, char *argv[])

{

FL_FORM *simpleform;



fl_initialize(&argc, argv, "FormDemo", 0, 0);

simpleform = fl_bgn_form(FL_UP_BOX,230,160);

fl_add_button(FL_NORMAL_BUTTON,40,50,150,60,"Push Me");

fl_end_form();



fl_show_form(simpleform, FL_PLACE_MOUSE, FL_NOBORDER, "PushMe");



fl_do_forms();

fl_hide_form(simpleform);

return 0;

}

#################################################

Pour la compilation je fais :

# gcc –O –o pushme pushme.c -lforms -lX11 -lM

J’obtiens le message d’erreur suivant :

[root@localhost push]# gcc -O -o pushme pushme.c -lforms -lX11 -lm
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libforms.so: undefined reference to `XpmReadFileToPixmap'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libforms.so: undefined reference to `XpmCreatePixmapFromData'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libforms.so: undefined reference to `XpmAttributesSize'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libforms.so: undefined reference to `XpmFreeAttributes'
collect2: ld a retourné 1 code d'état d'exécution



Quel qu’un peux m’aider ?!!

2 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 mai 2009 à 19:25
Bienvenue,

Pour la ligne gcc :
-o pushme -> Fichier de sortie pushme
pushme.c -> Fichier à compiler
-lforms -lX11 -lm
-> Inclusion des librairies forms, X11 et m.

C'est une erreur lors de l'édition des liens (link en anglais) pour être précis.
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libforms.so: undefined reference to `XpmCreatePixmapFromData'

Dans /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libforms.so, référence non définie à `XpmCreatePixmapFromData.

Autrement dit, il ne trouve pas le fichier binaire (.lib ou .a) contenant les fonctions citées, nécessaire pour une librairie dont tu as besoin. Il faut que tu rajoute la librairie adéquate en entrée du lieur.

Dans ton cas, une rapide recherche google nous indique qu'il s'agit de la librairie Xpm. Il faut que tu ajoutes -lXpm à ta ligne de compilation.
3
Mcodi Messages postés 2 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 6 mai 2009
6 mai 2009 à 10:40
j'arrive pas à comprendre tous les options de la commande "gcc", je pense que c'est un erreur de compilation.
0
Rejoignez-nous