-
Probléme SNMP Borland
Salut,
J'ai un problème avec un programme SNMP que je doit faire sous borland 6 ,
j'ai cette erreur :
[Linker Error] Unresolved external 'SnmpStartup' referenced from G:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
J'ai bien inclut <Winsnmp.h> .
Peut etre inclure le .lib? mais si oui comment?
-
Salut, et bienvenue sur le forum :D
Les erreur de liaisons (linking error), ce sont des erreurs apparues à l'édition de liens:
La compilation se passe, généralement, en trois grosses parties:
- Le "préprocessing": toutes les définitions préprocesseurs sont remplacées par leur valeur (ce qui sous entend: si on croise un include, on copie le fichier inclu dans le fichier en cours de travail)
- La compilation proprement dite: Chaque fichier source (*.cpp) ("unitié de compilation") est compilé séparément, et fournit ce que l'on appelle un "fichier objet"... Chaque appel de fonction qui est connue dans une unité de compilation, mais qui n'est pas définie (en gros, toutes les fonctions qui se trouvent dans les fichiers d'en-têtes inclu) est remplacée par un symbole unique qui permettra à l'éditeur de lien de savoir quelle fonction était appelée.
- Enfin, l'édition de lien: tous les fichiers objets sont regroupés, et les symboles des fonctions appelées sont remplacés par l'adresse à laquelle se trouve la fonction concernée.
Quand tu obtiens une erreur "unresolved ...", c'est l'éditieur de liens qui se plaint.
Cela signifie qu'il n'a pas trouvé la fonction (à ce stade, d'office compilée) à laquelle il est fait appel.
Quand il s'agit d'une fonction que tu es sensé avoir toi-même codé, cela signifie le plus souvent... que tu as oublié de coder cette fonction.
Quand il s'agit d'une fonction fournie par une bibliothèque tierce (ce qui est le cas ici), cela indique le plus souvent que... tu as oublié de préciser à l'éditeur de liens qu'il devait utiliser la bibliothèque en question (ou qu'il ne l'a pas trouvée dans les chemins dans lesquels il a cherché).
Selon les systèmes, la bibliothèque est soit le .lib, soit le .a, mais peut aussi etre le .so ou la .dll (sous mingw, les noms sont sous la forme de libLENOMDELABIBLIO.a, et on ne doit mettre que LENOMDELABIBLIO)
Quoi qu'il en soit, cela devrait se régler directement dans les options du projet:
Trouver un terme qui te ferais penser aux bibliothèques externes, rajouter le nom de la bibliothèque, et, si elle ne se trouve pas dans un dossier "classic" de bibliothèques (par exemple c:\program files\borland\lib, vu que tu travailles sous borland :D), trouver comment lui indiquer le chemin qui va bien...