Stlink: [compatibilité] référence non définie à `libusb_set_option'

Créé le 25 mars 2020  ·  12Commentaires  ·  Source: stlink-org/stlink

Salut tout le monde,

Je vais essayer de compiler le projet sur Windows 10 avec MinGW-w64 sans succès.
L'erreur est :
C:/stlink/src/sg.c:972: undefined reference to 'libusb_set_option'

Mon environnement est :

  • Windows 10
  • texane/stlink 1.6.0 => Cette version nécessite la libusb-1.0.22.7z (téléchargée manuellement)
  • MinGW-w64 i686-8.1.0-posix-nain-rt_v6-rev0

Pouvez-vous m'aider?

Log complet de la compilation : log.txt

Merci en avance.

Ju

bucompilation bufixed dependenclibusb errocompilation generadocumention owindows staturesolved

Tous les 12 commentaires

Veuillez plutôt essayer la branche develop . Je pense qu'il y a eu quelques correctifs liés à libusb depuis la version v1.6.0.

L'erreur mentionnée ne s'affiche pas mais la compilation a échoué.

log_w_develop_latest_commit_a09ef54.txt

Je veux ajouter une remarque.

Le dernier journal indique que j'ai déjà libusb dans mon système.
-- Found Libusb: C:/Windows/System32/libusb-1.0.dll
Bien sûr, cette version est ancienne.

Quelle est votre opinion à ce sujet.

@ purjus74 Je pense que le problème avec libusb, que vous téléchargez manuellement.
Veuillez le supprimer. Effacez tous les builds. Et essayez encore une fois.

Juste pour donner plus de détails :
Avant d'utiliser votre projet, mon système avait déjà une instance libusb.
libusb_on_my_windows_10

Si je laisse le batch mingw64-build.bat télécharger la libusb-1.0.22.7z, l'extraction échoue :

...
-- Could NOT find Libusb (missing: LIBUSB_INCLUDE_DIR)
-- downloading libusb 1.0.22

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Scanning the drive for archives:
1 file, 2601 bytes (3 KiB)

Extracting archive: C:\stlink-develop\scripts\libusb-1.0.22.7z
ERROR: C:\stlink-develop\scripts\libusb-1.0.22.7z
C:\stlink-develop\scripts\libusb-1.0.22.7z
Open ERROR: Can not open the file as [7z] archive


ERRORS:
Is not archive
...

Il semble que l'archive est un fichier corrompu :(
image

@slyshykO : Vous avez raison, je n'avais pas remarqué au début qu'une librairie externe libusb était présente.

Je pense que ce comportement (erreur lors de l'extraction de libusb-1.0.22.7z) est dû à la protection de ma société :(
Ce f*#! la protection crée le fichier archive recherché mais il contient une page html d'erreur !!!

html_page

Mais je ne suis pas sûr que ce soit un problème à télécharger avant la bonne archive libusb et à la mettre dans le dossier de construction.
Mon premier journal montre que mingw64-build.bat trouve l'archive, l'extrait et l'utilise :

-- libusb archive already in build folder

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Scanning the drive for archives:
1 file, 980895 bytes (958 KiB)

Extracting archive: C:\stlink\scripts\libusb-1.0.22.7z
--
Path = C:\stlink\scripts\libusb-1.0.22.7z
Type = 7z
Physical Size = 980895
Headers Size = 682
Method = LZMA2:23 BCJ
Solid = +
Blocks = 2

Everything is Ok

@purjus74 : Est-ce que toute ta compilation réussit maintenant ?
@slyshykO : Je pense que nous devrions ajouter une note aux instructions pour ne pas utiliser libusb packages externes

Le problème est que Windows a de nombreuses options sur la façon d'installer libusb, ainsi que de nombreux compilateurs avec différentes ABI. C'est pourquoi nous devrions fournir des versions de Windows.

Je viens d'essayer sur une autre machine (sans l'ancienne libusb dans C:\Windows\System32) et ça marche (avec la branche develop, dernier commit #a09ef54).
Par conséquent, le problème est dû à une autre version de libusb déjà stockée et utilisée par les autres projets.

Merci pour votre soutien et pour votre travail ;)

Réouverture car la documentation et les travaux connexes restent en suspens...

Cette page vous a été utile?
0 / 5 - 0 notes