Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1030 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  erreur de link avec la biblio jpeglib -> que faire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

erreur de link avec la biblio jpeglib -> que faire ?

n°489740
lordankou
Posté le 17-08-2003 à 22:00:48  profilanswer
 

voila les erreurs que j'obtiens au niveau du link : (compilation 0 erreurs, 0 warning)
 

Code :
  1. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_destroy_decompress(struct jpeg_decompress_struct *)" (?jpeg_destroy_decompress@@YAXPAUjpeg_decompress_struct@@@Z)
  2. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_finish_decompress(struct jpeg_decompress_struct *)" (?jpeg_finish_decompress@@YAHPAUjpeg_decompress_struct@@@Z)
  3. tetris.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl jpeg_read_scanlines(struct jpeg_decompress_struct *,unsigned char * *,unsigned int)" (?jpeg_read_scanlines@@YAIPAUjpeg_decompress_struct@@PAPAEI@Z)
  4. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_start_decompress(struct jpeg_decompress_struct *)" (?jpeg_start_decompress@@YAHPAUjpeg_decompress_struct@@@Z)
  5. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_read_header(struct jpeg_decompress_struct *,int)" (?jpeg_read_header@@YAHPAUjpeg_decompress_struct@@H@Z)
  6. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_stdio_src(struct jpeg_decompress_struct *,struct _iobuf *)" (?jpeg_stdio_src@@YAXPAUjpeg_decompress_struct@@PAU_iobuf@@@Z)
  7. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_CreateDecompress(struct jpeg_decompress_struct *,int,unsigned int)" (?jpeg_CreateDecompress@@YAXPAUjpeg_decompress_struct@@HI@Z)
  8. tetris.obj : error LNK2001: unresolved external symbol "struct jpeg_error_mgr * __cdecl jpeg_std_error(struct jpeg_error_mgr *)" (?jpeg_std_error@@YAPAUjpeg_error_mgr@@PAU1@@Z)
  9. Debug/tetris.exe : fatal error LNK1120: 8 unresolved externals


 
j'ai réessayé de retélécharger les librairies et ça ne marche tjrs pas. je vois pas trop d'ou ça peut venir.
 
j'utilise VC++ 6.0
 
N.B : désolé me suis trompé de catégorie ! (merci de me l'avoir fait remarqué  :hello: )


Message édité par lordankou le 17-08-2003 à 22:08:53

---------------

mood
Publicité
Posté le 17-08-2003 à 22:00:48  profilanswer
 

n°489746
*syl*
--> []
Posté le 17-08-2003 à 22:03:59  profilanswer
 

Erreur de linkage donc cat biblio link..hmm [:meganne]

n°489785
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-08-2003 à 22:56:53  profilanswer
 

LordAnkou a écrit :

voila les erreurs que j'obtiens au niveau du link : (compilation 0 erreurs, 0 warning)
 
j'ai réessayé de retélécharger les librairies et ça ne marche tjrs pas. je vois pas trop d'ou ça peut venir.


est-ce que ton projet est linké avec le .lib correspondant à la librairie ? un fichier du genre jpeglib.lib


Message édité par Harkonnen le 17-08-2003 à 22:57:12

---------------
J'ai un string dans l'array (Paris Hilton)
n°489797
lordankou
Posté le 17-08-2003 à 23:11:24  profilanswer
 

bah justement j'y ai penser. le problème c que j'ai télécharger les sources (fichiers *.c et *.h) et y'a pas de DLL.
et étant donné que je suis débutant avec toutes ces histoires de librairies  :whistle: je ne sais pas comment on fait pour en créer une à partir des sources.
 
mon problème doit venir de là comme tu me le fais remarquer Harkonnen.
 
donc euh comment faire pour créer cette DLL ? (ensuite je sais rajouter le lib au projet quand je l'ai).
Merci d'avance


---------------

n°489805
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-08-2003 à 23:18:25  profilanswer
 

Ne confonds pas .DLL et .LIB !
Une DLL est une librairie liée dynamiquement pendant l'éxécution de ton programme. En clair, pendant son exécution, ton programme charge cette DLL en mémoire, et utilise les fonctions qu'elle expose.
Un fichier .LIB contient des fonctions liées statiquement au moment du linkage de ton programme. En clair : les fonctions d'un fichier .LIB seront présentes dans ton exécutable final, contrairement aux fonctions d'une DLL, qui "restent" dans la DLL.
Généralement, un .LIB est utilisé lorsque tu veux appeler les fonctions d'une DLL : le .LIB contient le code qui génèrera les appels aux fonctions de la DLL lors de l'éxécution de ton programme. Il est fourni avec la DLL en question dans la grande majorité des cas.
Si ce n'est pas le cas, tu dois utiliser la fonction Win32 GetProcAddress() pour récupérer un pointeur vers la fonction de la DLL que tu veux utiliser.
Si tu as les sources de la DLL, un .LIB sera généré automatiquement si tu le compiles avec VC++6.
 
Tu trouveras plus d'infos dans ce topic :
http://forum.hardware.fr/forum2.ph [...] 798&cat=10
 
 


---------------
J'ai un string dans l'array (Paris Hilton)
n°489816
lordankou
Posté le 17-08-2003 à 23:31:59  profilanswer
 

donc si j'ai bien compris le fichier .lib d'une DLL sert de "pointeur" vers la fonction contenu dans la DLL.
tandis que quand tu charges la DLL en mémoire tu pointes directement vers les fonctions.
 
Donc en fait en utilisant la DLL tu économises une étape, celle d'utiliser la lib ?
 
bon j'espère que c ça lol.
 
euh sinon bah pour mon problème je n'ai pas de fichier .DLL et encore moins de .lib
 
je me retrouve donc qu'avec des fichiers sources.


---------------

n°489817
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-08-2003 à 23:35:18  profilanswer
 

LordAnkou a écrit :

donc si j'ai bien compris le fichier .lib d'une DLL sert de "pointeur" vers la fonction contenu dans la DLL.


C'est très shématisé, mais on peut dire ça.
 

LordAnkou a écrit :


tandis que quand tu charges la DLL en mémoire tu pointes directement vers les fonctions.


Oui
 

LordAnkou a écrit :


Donc en fait en utilisant la DLL tu économises une étape, celle d'utiliser la lib ?


A condition que tu connaisses exactement les fonctions et leurs arguments de ladite DLL
 

LordAnkou a écrit :


euh sinon bah pour mon problème je n'ai pas de fichier .DLL et encore moins de .lib
 
je me retrouve donc qu'avec des fichiers sources.


Si tes sources sont ceux d'une DLL, les .LIB correspondants seront générés automatiquement par Visual C++ pendant leur compilation


---------------
J'ai un string dans l'array (Paris Hilton)
n°489970
lordankou
Posté le 18-08-2003 à 09:30:39  profilanswer
 

Citation :


Si tes sources sont ceux d'une DLL, les .LIB correspondants seront générés automatiquement par Visual C++ pendant leur compilation


 
je risque de passer pour un idiot  :( mais comment on fait ça ?  :cry:


---------------

n°489973
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2003 à 09:33:17  profilanswer
 

tu prends VC++, tu créé un projet de type DLL, tu inclues tes sources à ce projet et tu compiles normalement [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
n°490110
lordankou
Posté le 18-08-2003 à 11:27:36  profilanswer
 

bah j'ai donc créer le fichier jpeglib.lib et jpeglib.dll
 
jpeglib.lib dans le répertoire lib de vc++ et jpeglib.dll dans le même répertoire.
 
de plus j'ai bien rajouté dans les liens de mon projet le fichier jpeglib.lib
 
mais j'ai tjrs droit au moment de l'édition des liens :  
 

Code :
  1. Linking...
  2. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_destroy_decompress(struct jpeg_decompress_struct *)" (?jpeg_destroy_decompress@@YAXPAUjpeg_decompress_struct@@@Z)
  3. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_finish_decompress(struct jpeg_decompress_struct *)" (?jpeg_finish_decompress@@YAHPAUjpeg_decompress_struct@@@Z)
  4. tetris.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl jpeg_read_scanlines(struct jpeg_decompress_struct *,unsigned char * *,unsigned int)" (?jpeg_read_scanlines@@YAIPAUjpeg_decompress_struct@@PAPAEI@Z)
  5. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_start_decompress(struct jpeg_decompress_struct *)" (?jpeg_start_decompress@@YAHPAUjpeg_decompress_struct@@@Z)
  6. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_read_header(struct jpeg_decompress_struct *,int)" (?jpeg_read_header@@YAHPAUjpeg_decompress_struct@@H@Z)
  7. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_stdio_src(struct jpeg_decompress_struct *,struct _iobuf *)" (?jpeg_stdio_src@@YAXPAUjpeg_decompress_struct@@PAU_iobuf@@@Z)
  8. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_CreateDecompress(struct jpeg_decompress_struct *,int,unsigned int)" (?jpeg_CreateDecompress@@YAXPAUjpeg_decompress_struct@@HI@Z)
  9. tetris.obj : error LNK2001: unresolved external symbol "struct jpeg_error_mgr * __cdecl jpeg_std_error(struct jpeg_error_mgr *)" (?jpeg_std_error@@YAPAUjpeg_error_mgr@@PAU1@@Z)
  10. fatal error LNK1120: 8 unresolved externals


---------------

mood
Publicité
Posté le 18-08-2003 à 11:27:36  profilanswer
 

n°490111
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2003 à 11:32:49  profilanswer
 

donne moi le lien ou tu as récupéré le source de la librairie jpeg


---------------
J'ai un string dans l'array (Paris Hilton)
n°490114
lordankou
Posté le 18-08-2003 à 11:38:28  profilanswer
 

je l'ai récupéré ici :  
ftp://ftp.uu.net/graphics/jpeg/
 :D


---------------

n°490119
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2003 à 11:48:11  profilanswer
 

nom du fichier ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°490125
lordankou
Posté le 18-08-2003 à 11:53:39  profilanswer
 

jpegsrc.v6b.tar.gz
 
 
oups désolé  :jap:


---------------

n°490637
lordankou
Posté le 18-08-2003 à 20:35:32  profilanswer
 

:bounce:


---------------

n°490668
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-08-2003 à 21:06:14  profilanswer
 

Oui oui, ça vient, laisse moi le temps de compiler la librarie !
 
Alors, j'ai récupéré le fichier, et j'ai compilé ce qu'il fallait. Résultat des courses, j'obtiens les fichiers suivants :
- libjpeg.lib (ce dont tu as besoin)
- wrjpgcom.exe
- rdjpgcom.exe
- jpegtran.exe
- djpeg.exe
- cjpeg.exe
 
Alors déjà, il va falloir me dire comment tu as fait pour obtenir un libjpeg.lib, pour la simple raison qu'il est nécessaire de créer un fichier jconfig.h à partir du fichier jconfig.doc livré avec l'archive.
 
Ensuite, tu n'as pas besoin de créer un projet et d'y inclure tous les sources de cette librairie, un makefile est présent pour une majorité de compilos et d'OS (dont VC++). Tu n'as même pas à ouvrir Visual C++, uniquement à lancer le make sur le makefile correspondant à Visual C++.
 
Enfin, contrairement à ce que tu me dis, aucun fichier DLL n'est généré, uniquement le fichier .LIB (ce qui est normal car cette librairie semble contenir des fonctions destinées à être liées statiquement).
 
Donc tu m'as menti petit coquin ! Tu n'as pas généré les fichiers car tu n'as pas lu la doc livrée avec la librairie, qui explique tout le processus de compilation et d'installation !
 
Conclusion : file lire la doc contenue dans le fichier install.doc de cette librairie, et reviens me voir si tu as rééllement un problème ! Cette librairie se compile parfaitement du 1er coup, il suffit juste de lire le mode d'emploi !
 
En résumé : [:sh@rdar]


---------------
J'ai un string dans l'array (Paris Hilton)
n°490778
*syl*
--> []
Posté le 18-08-2003 à 23:20:46  profilanswer
 

J'demande le [:ban] pour avoir embêté notre modo (préféré :whistle:) avec des conneries qui sont marquées dans le fichier d'install..

n°490939
lordankou
Posté le 19-08-2003 à 10:04:52  profilanswer
 

Citation :


Donc tu m'as menti petit coquin ! Tu n'as pas généré les fichiers car tu n'as pas lu la doc livrée avec la librairie, qui explique tout le processus de compilation et d'installation !  


 
si tu veux que je t'envoie les fichiers y'a pas de problèmes (j'ai pas menti !!)
 
bon vais essayer de suivre la doc même si je comprends pas tout


---------------

n°491056
lordankou
Posté le 19-08-2003 à 11:33:25  profilanswer
 

Citation :


uniquement à lancer le make sur le makefile correspondant à Visual C++.  


 
bon alors là je comprends vraiment pas !  :heink:  
 
j'ai lu le fichier instal et 95% des trucs c pour les machines unix et pour ce qui est des machines windows bah y'a pas grand chose (faut pas oublier que j'y connais rien ou presque à ce niveau donc c sur que pour vous ça semble facile mais pour moi ça l'est moins).
 
Donc en résumé voila ce que j'ai fait :  :(  
j'ai crée un projet static librairy sous vc++
j'ai rajouté les sources (y compris le fichier jconfig).
Or quand je compile j'ai droit à des erreurs à différents fichier sources (ceux qui s'occupent de la mémoire à priori).
en les virant j'arrive à compiler mais ensuite quand je veux utiliser la librairie ça plante...
 
je veux pas faire preuve de mauvaise fois mais déjà que je bosse sur une machine qui plante toutes les 5 minutes (vive 98se...) et qui rame comme pas possible, alors please aider moi !  :cry:  


---------------

n°491062
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 19-08-2003 à 11:37:53  profilanswer
 

Bon, abrégeons ton calvaire...
 
- Tu copies/colles le contenu du fichier jconfig.doc dans un fichier jconfig.h
 
- Tu lances la fenêtre de commandes DOS
 
- CD rep d'install de ta librairie
 
- nmake makefile.vc
 
Et c'est tout. Tu auras ensuite tous les fichiers que je t'ai dit plus haut


---------------
J'ai un string dans l'array (Paris Hilton)
n°491208
lordankou
Posté le 19-08-2003 à 14:44:07  profilanswer
 

bon je crois que je vais attendre de revenir sous linux car euh ça marche pas la dernière étape.  
 
ça me marque non de fichier incorrect (d'ailleurs ça sera pas make à la place de nmake ? mais bon j'ai utilisé les deux de toute façon).


---------------

n°491482
lordankou
Posté le 19-08-2003 à 17:35:33  profilanswer
 

bon on va faire plus simple !  
qui serait sympa de m'envoyer le fichier jpeglib.lib ?


---------------

n°491635
lordankou
Posté le 19-08-2003 à 20:01:03  profilanswer
 

bon alors j'ai récupéré un fichier jpeglib.lib et j'obtiens tjrs :
 

Code :
  1. Linking...
  2. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_destroy_decompress(struct jpeg_decompress_struct *)" (?jpeg_destroy_decompress@@YAXPAUjpeg_decompress_struct@@@Z)
  3. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_finish_decompress(struct jpeg_decompress_struct *)" (?jpeg_finish_decompress@@YAHPAUjpeg_decompress_struct@@@Z)
  4. tetris.obj : error LNK2001: unresolved external symbol "unsigned int __cdecl jpeg_read_scanlines(struct jpeg_decompress_struct *,unsigned char * *,unsigned int)" (?jpeg_read_scanlines@@YAIPAUjpeg_decompress_struct@@PAPAEI@Z)
  5. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_start_decompress(struct jpeg_decompress_struct *)" (?jpeg_start_decompress@@YAHPAUjpeg_decompress_struct@@@Z)
  6. tetris.obj : error LNK2001: unresolved external symbol "int __cdecl jpeg_read_header(struct jpeg_decompress_struct *,int)" (?jpeg_read_header@@YAHPAUjpeg_decompress_struct@@H@Z)
  7. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_stdio_src(struct jpeg_decompress_struct *,struct _iobuf *)" (?jpeg_stdio_src@@YAXPAUjpeg_decompress_struct@@PAU_iobuf@@@Z)
  8. tetris.obj : error LNK2001: unresolved external symbol "void __cdecl jpeg_CreateDecompress(struct jpeg_decompress_struct *,int,unsigned int)" (?jpeg_CreateDecompress@@YAXPAUjpeg_decompress_struct@@HI@Z)
  9. tetris.obj : error LNK2001: unresolved external symbol "struct jpeg_error_mgr * __cdecl jpeg_std_error(struct jpeg_error_mgr *)" (?jpeg_std_error@@YAPAUjpeg_error_mgr@@PAU1@@Z)


 
pourtant j'ai bien lier le fichier dans la section link :  
 

Code :
  1. kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib jpeglib.lib


 
je vois pas ce qui ne va pas (j'ai bien le fichier dans le répertoir lib de VC++)


Message édité par lordankou le 19-08-2003 à 21:48:55

---------------

n°1712820
white_boy
Posté le 04-04-2008 à 15:31:00  profilanswer
 

moi g le meme blem!j éssaye de compiler une biblo "levmar" sous visual c++6.0 avec la commande makefile et g pratiquement les meme message d erreur!!!qlq 1 peut m aider????

n°1712821
white_boy
Posté le 04-04-2008 à 15:32:46  profilanswer
 

stp g besoin d aide!!j éssaye de compiler une biblo avec vc++6 avec la commande mikefile mé g des message d erreur de linkage!!!tu peux m aider?

n°1808909
jepife
for(j=today;j<365;j++) travail
Posté le 06-11-2008 à 11:27:01  profilanswer
 

Bonjour,
 
il me semble que tu code sous VC6 en C++ donc si tu corriger tes erreurs de link, n'oubli surtout pas que cette lib est en C et non en C++
donc :
extern "C"
{
#include "jpeglib.h"
#include "jerror.h"  
}
 
za+

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  erreur de link avec la biblio jpeglib -> que faire ?

 

Sujets relatifs
[JS]Je comprend pas mon erreur ... <option> dynamique - résoluErreur de compilation
[DELPHI] Problème pour une erreur que je n'arrive pas à résoudre[VC++] Erreur de link: LNK2001: unresolved external symbol
[HTML/CSS] Modif automatique de la status bar lors d'un hover sur link[SDL] erreur de link avec dev C++
[C] erreur bêteCherche erreur de syntaxe....
Plus de sujets relatifs à : erreur de link avec la biblio jpeglib -> que faire ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR