Erreur LNK 2019, LNK 2028 sous VC++
Bonjour à tous,
avant de vous exposez mon problème, je tiens à préciser que je suis un novice en programmation et que je découvre à peu près tout en C++. Mon domaine est plutôt l'électronique analogique.
Je suis en stage et mon sujet est de mettre au point un driver. Pour le moment, je tente de mettre au point un application Windows qui me permettra de communiquer plus tard avec l'appareil USB.
Je suis parti de codes trouvés sur le net, utilisant libusb. Sans y toucher, ce code ne compilait pas, j'avais un message comme quoi VC++ ne trouvait pas un .h. Je pense avoir réglé ce problème, il devait s'agir d'un fichier trop ancien et qui a changé de nom depuis le temps.
Maintenant, mon soucis est lorsque je lance le programme en mode debug. J'obtiens le message suivant:
Citation:
------ Début de la génération*: Projet*: Prog_PC, Configuration*: Debug Win32 ------
stdafx.cpp
.NETFramework,Version=v4.0.AssemblyAttributes.cpp
USB_Part.obj : error LNK2028: jeton non résolu (0A000029) "extern "C" int __cdecl usb_bulk_read(struct usb_dev_handle *,int,char *,int,int)" (?usb_bulk_read@@$$J0YAHPAUusb_dev_handle@@HPADHH@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_BulkReceive(unsigned int)" (?USB_BulkReceive@USB_Part@@$$FQAEHI@Z)
USB_Part.obj : error LNK2028: jeton non résolu (0A00002D) "extern "C" struct usb_bus * __cdecl usb_get_busses(void)" (?usb_get_busses@@$$J0YAPAUusb_bus@@XZ) référencé dans la fonction "public: struct usb_dev_handle * __thiscall USB_Part::open_dev(void)" (?open_dev@USB_Part@@$$FQAEPAUusb_dev_handle@@XZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A00002F) "extern "C" int __cdecl usb_find_devices(void)" (?usb_find_devices@@$$J0YAHXZ) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A000031) "extern "C" int __cdecl usb_close(struct usb_dev_handle *)" (?usb_close@@$$J0YAHPAUusb_dev_handle@@@Z) référencé dans la fonction "public: __thiscall USB_Part::~USB_Part(void)" (??1USB_Part@@$$FQAE@XZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A00003C) "extern "C" int __cdecl usb_claim_interface(struct usb_dev_handle *,int)" (?usb_claim_interface@@$$J0YAHPAUusb_dev_handle@@H@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A00004C) "extern "C" int __cdecl usb_set_configuration(struct usb_dev_handle *,int)" (?usb_set_configuration@@$$J0YAHPAUusb_dev_handle@@H@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A00004D) "extern "C" int __cdecl usb_bulk_write(struct usb_dev_handle *,int,char *,int,int)" (?usb_bulk_write@@$$J0YAHPAUusb_dev_handle@@HPADHH@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_BulkSend(unsigned int)" (?USB_BulkSend@USB_Part@@$$FQAEHI@Z)
USB_Part.obj : error LNK2028: jeton non résolu (0A000051) "extern "C" struct usb_dev_handle * __cdecl usb_open(struct usb_device *)" (?usb_open@@$$J0YAPAUusb_dev_handle@@PAUusb_device@@@Z) référencé dans la fonction "public: struct usb_dev_handle * __thiscall USB_Part::open_dev(void)" (?open_dev@USB_Part@@$$FQAEPAUusb_dev_handle@@XZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A000053) "extern "C" int __cdecl usb_find_busses(void)" (?usb_find_busses@@$$J0YAHXZ) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A000056) "extern "C" int __cdecl usb_release_interface(struct usb_dev_handle *,int)" (?usb_release_interface@@$$J0YAHPAUusb_dev_handle@@H@Z) référencé dans la fonction "public: __thiscall USB_Part::~USB_Part(void)" (??1USB_Part@@$$FQAE@XZ)
USB_Part.obj : error LNK2028: jeton non résolu (0A000057) "extern "C" void __cdecl usb_init(void)" (?usb_init@@$$J0YAXXZ) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_close(struct usb_dev_handle *)" (?usb_close@@$$J0YAHPAUusb_dev_handle@@@Z) référencé dans la fonction "public: __thiscall USB_Part::~USB_Part(void)" (??1USB_Part@@$$FQAE@XZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_release_interface(struct usb_dev_handle *,int)" (?usb_release_interface@@$$J0YAHPAUusb_dev_handle@@H@Z) référencé dans la fonction "public: __thiscall USB_Part::~USB_Part(void)" (??1USB_Part@@$$FQAE@XZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" struct usb_dev_handle * __cdecl usb_open(struct usb_device *)" (?usb_open@@$$J0YAPAUusb_dev_handle@@PAUusb_device@@@Z) référencé dans la fonction "public: struct usb_dev_handle * __thiscall USB_Part::open_dev(void)" (?open_dev@USB_Part@@$$FQAEPAUusb_dev_handle@@XZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" struct usb_bus * __cdecl usb_get_busses(void)" (?usb_get_busses@@$$J0YAPAUusb_bus@@XZ) référencé dans la fonction "public: struct usb_dev_handle * __thiscall USB_Part::open_dev(void)" (?open_dev@USB_Part@@$$FQAEPAUusb_dev_handle@@XZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_claim_interface(struct usb_dev_handle *,int)" (?usb_claim_interface@@$$J0YAHPAUusb_dev_handle@@H@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_set_configuration(struct usb_dev_handle *,int)" (?usb_set_configuration@@$$J0YAHPAUusb_dev_handle@@H@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_find_devices(void)" (?usb_find_devices@@$$J0YAHXZ) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_find_busses(void)" (?usb_find_busses@@$$J0YAHXZ) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" void __cdecl usb_init(void)" (?usb_init@@$$J0YAXXZ) référencé dans la fonction "public: int __thiscall USB_Part::USB_Init(void)" (?USB_Init@USB_Part@@$$FQAEHXZ)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_bulk_write(struct usb_dev_handle *,int,char *,int,int)" (?usb_bulk_write@@$$J0YAHPAUusb_dev_handle@@HPADHH@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_BulkSend(unsigned int)" (?USB_BulkSend@USB_Part@@$$FQAEHI@Z)
USB_Part.obj : error LNK2019: symbole externe non résolu "extern "C" int __cdecl usb_bulk_read(struct usb_dev_handle *,int,char *,int,int)" (?usb_bulk_read@@$$J0YAHPAUusb_dev_handle@@HPADHH@Z) référencé dans la fonction "public: int __thiscall USB_Part::USB_BulkReceive(unsigned int)" (?USB_BulkReceive@USB_Part@@$$FQAEHI@Z)
C:\Documents and Settings\rdi-libre\Bureau\USB Drivers\_modele pour Prog_PC(win)_modif\Debug\Prog_PC.exe : fatal error LNK1120: 22 externes non résolus
========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
En parcourant le net, j'ai trouvé des choses comme quoi il fallait activer l'option /Tc ou /Tp.
J'ai essayé... En /Tc, stdafx ne fonctionne pas, j'ai une erreur me disant que j'ai oublié de le mettre. En /Tp, rien ne change.
J'ai été voir sur la msdn, j'y ai lu pas mal de choses mais de là à bien tout saisir... Le soucis n'est pas l'anglais mais mes connaissances en C++.
Apparemment, il faudrait mettre extern "C" dans le programme, j'ai donc regardé s'il y était et c'est le cas.
Après, je n'ai peut-être pas compris comment l'utiliser, c'est fort possible.:oops:
Si jamais ça peut servir, j'utilise Visual C++ 2010 Express sous XP 32 bits.
Et toutes mes excuses si je n'ai pas posté dans le bon topic, je laisse le soin à un modérateur de déplacer dans la partie appropriée.