[Langage C++] Problème pour exécuter un projet avec Dev C

abzi

Nouveau membre
salut à tous,
je suis un nouveau ici ! bon je vous sollicite parce que j'ai un problème en programmation. En cours, on réalise des petits projets (jeux,...) à partir d'un exemple du prof qu'il nous suffit de modifier. Ce programme est en langage C, sur Dev-C et utilise la librairie FLTK pour les aspects graphiques.
J'ai voulu prendre ce projet pour l'installer chez moi : j'ai télécharger une version plus récente de Dev-c et aussi la librairie FLTK. Pourtant le logiciel n'arrive pas à lancer le programme alors que tout marchait parfaitement à l'école ! Apparemment j'ai pleins d'erreurs liées à FLTK, je ne sais pas si je l'ai installé correctement, comment vérifier ? Les erreurs sont du type : [error linker]....définition de Fl...., apparemment déclinées avec toutes les fonctions possibles de la librairie. Je n'y comprends rien ! En plus, je suis pas un pro en PC, ni en prog, alors ça m'énerve assez vite.
Si qqn pouvait m'aider ça serait sympa, je peux vous donner plus de détails si nécessaires.

Merci d'avance
a+ j'espère
 

KangOl

Grand Maître
nous on veux bien t'aider mais faudrait nous donner un peu plus d'infos...

a priori c'est un problème de link donc tu n'as pas bien intégrer la bibliotèque a ton projet

 

abzi

Nouveau membre
ok merci pour ta réponse KangOl

alors plus de détails :
j'ai Dev-C++ version 4.9.9.2
j'ai téléchargé : le Package File FLTK version 1.1.4
j'ai cliqué sur ce package, apparemment il y a une installation (très rapide) puis est apparu le Package Manager et je vois le package FLTK qui apparait dans la liste. Je n'ai rien fait d'autre.

Après dans le projet au départ j'ai 2 erreurs :
_ une première : main must return int (au lieu de void) dans main.cpp
_ une seconde : make.exe : [Build Error] [Main.o] Error 1

J'ai juste remplacé void par int pour voir et là ça a l'air de passer ce cap et d'aller chercher d'autres erreurs dans les différentes unités de mon projet. Résultat : il y en 91, presque toutes du type :
[Linker error] undefined refernce to 'Fl_Button::Fl_Button(int, int, int, int, char const) par exemple

Voila si ça peut t'aider !
a+
 

Emmanuel Delahaye

Expert

Ben oui, normal. main() retourne int. Toujours.


_ une seconde : make.exe : [Build Error] [Main.o] Error 1

<...>d'autres erreurs dans les différentes unités de mon projet. Résultat : il y en 91, presque toutes du type :
[Linker error] undefined refernce to 'Fl_Button::Fl_Button(int, int, int, int, char const) par exemple
Erreur de link (ld). Il faut sans doute ajouter une bibliothèque manquante au projet (au pif, -lfltk).
 

abzi

Nouveau membre
ok merci pour ton aide
vous avez une idée de la bilbliothèque qu'il faut ajouter et surtout où est ce que je peux la trouver ?
merci
 

Emmanuel Delahaye

Expert

Je ne sais pas, mais une autre question se pose. Tu es sûr de compiler en C ? Parce que
[fixed]Fl_Button::Fl_Button[/fixed]
ca fait plutôt C++...
 

abzi

Nouveau membre
c'est vrai je pense que je programme en C++. Je suis pas un spécialiste de la programmation, notre but est seulement de comprendre comment ça marche et de pouvoir créer notre propre programme à partir d'un modèle. Ce modèle marchait très bien à l'école, et il ne marche plus chez moi ! Ca m'intrigue d'autant plus en ce qui concerne le int main(void) qui était bien à la base void main(void). Après certainement qu'il me manque une ou plusieurs bibliothèques pour faire marcher le tout. Mais lesquelles ?...
 

KangOl

Grand Maître
euh... tu fais quoi comme études ??

parce que ca fait peur la manière dont vous apprenez [:mlc]
 

Emmanuel Delahaye

Expert

??? Alors pourquoi tu mets [Langage C] dans ta question ?

 

abzi

Nouveau membre
salut !
je reviens à la charge ! j'ai toujours le même problème. après renseignement : oui je programme en langage C++ et j'utilise une bibiothèque fltk pour le graphisme. à l'école tout marche parfaitement, pour info la version est Dev-C++ version 4.01.
Donc déjà je ne comprends pas pourquoi je devrais mettre int main() alors que ça marche avec void main(). ensuite peut-être que j'ai mal intégré ma bilbliothèque fltk, en ce cas comment faire ?
j'espère sincèrement que vous pourrez m'aider.
je ne fais pas des études en informatique, mon cours c'est juste une option, nous avons très peu de temps, et si nous voulons faire qqch d'intéressant et de ludique avec le langage c ou c++, nous sommes obligés de passer sur certains points malheureusement, j'en conviens !

merci
a+
 

Emmanuel Delahaye

Expert

Qu'est-ce que tu n'as pas compris dans l'article dont j'ai publié le lien ?

 

abzi

Nouveau membre
salut !

j'ai trouvé le manuel d'aide pour la librairie fltk que j'ai installée.
Dedans il y a un petit exemple de programme, le célèbre "hello world" :

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>


int main(int argc, char **argv)
{
Fl_Window *window = new Fl_Window(300,180);
Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!");
box−>box(FL_UP_BOX);
box−>labelsize(36);
box−>labelfont(FL_BOLD+FL_ITALIC);
box−>labeltype(FL_SHADOW_LABEL);
window−>end();
window−>show(argc, argv);
return Fl::run();
}


Eh bien je n'arrive pas à lancer ce programme, j'ai environ une dizaine d'erreurs, toutes du type :
[linker error] undefined refercne to 'Fl_Window::Fl_Window(...)'

Donc je pense que le programme n'arrive pas à trouver le répertoire avec toutes les bibliothèques (qui existe, j'en suis sûr, j'ai fouillé dans mon disque dur ! ).

Alors j'ai quelques pistes, provenant du fichier d'aide, mais je ne comprends pas tout :

Building FLTK Under Microsoft Windows
There are three ways to build FLTK under Microsoft Windows. The first is to use the Visual C++ 5.0 project
files under the "visualc" directory. Just open (or double−click on) the "fltk.dsw" file to get the whole shebang.
The second method is to use the configure script included with the FLTK software; this has only been
tested with the CygWin tools:
sh configure −−prefix=C:/FLTK
make
The final method is to use a GNU−based development tool with the files in the "makefiles" directory. To
build using one of these tools simply copy the appropriate makeinclude and config files to the main directory
and do a make:
copy makefiles\Makefile.<env> Makefile
make

Using the Visual C++ DLL Library
The "fltkdll.dsp" project file builds a DLL−version of the FLTK library. Because of name mangling
differences between PC compilers (even between different versions of Visual C++!) you can only use the DLL that is generated with the same version compiler that you built it with.
When compiling an application or DLL that uses the FLTK DLL, you will need to define the FL_DLL
preprocessor symbol to get the correct linkage commands embedded within the FLTK header files.

Voila j'espère que ça pourra vous aider, je suis sûr que c'est un problème tout bête, mais c'est déjà trop compliqué pour moi !

a+
 

abzi

Nouveau membre
désolé pour la lisibilité !
je reprends :

j'ai trouvé le manuel d'aide pour la librairie fltk que j'ai installée.
Dedans il y a un petit exemple de programme, le célèbre "hello world" :

Code:
#include <FL/Fl.H> 
#include <FL/Fl_Window.H> 
#include <FL/Fl_Box.H> 
 
 
int main(int argc, char **argv)  
{ 
Fl_Window *window = new Fl_Window(300,180); 
Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!"); 
box−>box(FL_UP_BOX); 
box−>labelsize(36); 
box−>labelfont(FL_BOLD+FL_ITALIC); 
box−>labeltype(FL_SHADOW_LABEL); 
window−>end(); 
window−>show(argc, argv); 
return Fl::run(); 
}

Eh bien je n'arrive pas à lancer ce programme, j'ai environ une dizaine d'erreurs, toutes du type :
[linker error] undefined refercne to 'Fl_Window::Fl_Window(...)'

Donc je pense que le programme n'arrive pas à trouver le répertoire avec toutes les bibliothèques (qui existe, j'en suis sûr, j'ai fouillé dans mon disque dur ! ).

Alors j'ai quelques pistes, provenant du fichier d'aide, mais je ne comprends pas tout :

Building FLTK Under Microsoft Windows
There are three ways to build FLTK under Microsoft Windows. The first is to use the Visual C++ 5.0 project
files under the "visualc" directory. Just open (or double−click on) the "fltk.dsw" file to get the whole shebang.
The second method is to use the configure script included with the FLTK software; this has only been
tested with the CygWin tools:
sh configure −−prefix=CFLTK
make
The final method is to use a GNU−based development tool with the files in the "makefiles" directory. To
build using one of these tools simply copy the appropriate makeinclude and config files to the main directory
and do a make:
copy makefiles\Makefile.<env> Makefile
make

Using the Visual C++ DLL Library
The "fltkdll.dsp" project file builds a DLL−version of the FLTK library. Because of name mangling
differences between PC compilers (even between different versions of Visual C++!) you can only use the DLL that is generated with the same version compiler that you built it with.
When compiling an application or DLL that uses the FLTK DLL, you will need to define the FL_DLL
preprocessor symbol to get the correct linkage commands embedded within the FLTK header files.

Voila j'espère que ça pourra vous aider, je suis sûr que c'est un problème tout bête, mais c'est déjà trop compliqué pour moi !

a+

 

Emmanuel Delahaye

Expert

■Est-tu bien sûr d'utiliser un compilateur C ? (Dans le titre : "[Langage C]")
■L'extension des fichiers sources est-elle bien .c et non .cpp ni .C ?
■As-tu ajouté la bibliothèque FLTK à ton projet ?
 

abzi

Nouveau membre
Est-tu bien sûr d'utiliser un compilateur C ? (Dans le titre : "[Langage C]")
L'extension des fichiers sources est-elle bien .c et non .cpp ni .C ?
As-tu ajouté la bibliothèque FLTK à ton projet ?

Comment fait-on pour ajouter la bibliothèque Fltk au projet ? Je pensais que ça se faisait automatiquement.

Comme je l'ai dis plus haut, je me suis trompé : la programmation est bien en C++, tous mes fichiers source sont des .cpp
 

abzi

Nouveau membre
d'accord pour code::block.

Où est-ce que je peux télécharger la bibliothèque fltk adaptée ?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 069
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut