Stlink: [兼容性] 未定义对 `libusb_set_option' 的引用

创建于 2020-03-25  ·  12评论  ·  资料来源: stlink-org/stlink

大家好,

我将尝试使用 MinGW-w64 在 Windows 10 上编译该项目,但没有成功。
错误是:
C:/stlink/src/sg.c:972: undefined reference to 'libusb_set_option'

我的环境是:

  • 视窗 10
  • texane/stlink 1.6.0 => 这个版本需要libusb-1.0.22.7z(手动下载)
  • MinGW-w64 i686-8.1.0-posix-dwarf-rt_v6-rev0

你能帮我吗?

编译的完整日志: log.txt

提前谢谢你。

bucompilation bufixed dependenclibusb errocompilation generadocumention owindows staturesolved

所有12条评论

请改为尝试develop分支。 我认为自版本 v1.6.0 以来有一些与libusb相关的修复。

未显示提及的错误,但编译失败。

log_w_develop_latest_commit_a09ef54.txt

我想补充一句。

最后一个日志表明我的系统中已经有 libusb。
-- Found Libusb: C:/Windows/System32/libusb-1.0.dll
当然这个版本是旧的。

您对此有何看法。

@purjus74我认为 libusb 的问题,您手动下载。
请删除它。 清除所有构建。 再试一次。

只是为了提供更多细节:
在使用你的项目之前,我的系统已经有一个 libusb 实例。
libusb_on_my_windows_10

如果让批处理mingw64-build.bat下载libusb-1.0.22.7z,解压失败:

...
-- 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
...

似乎存档文件已损坏:(
image

@slyshykO :你说得对,一开始我没有注意到存在外部libusb库。

我认为这种行为(在 libusb-1.0.22.7z 提取期间的错误)是由于我的公司保护:(
这他妈的! 保护创建了想要的存档文件,但它包含一个错误的 html 页面!!!

html_page

但我不确定在良好的 libusb 存档之前下载并将其放入构建文件夹中是否有问题。
我的第一个日志说明 mingw64-build.bat 找到存档,提取它并使用它:

-- 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 :现在你的整个编译成功了吗?
@slyshykO :我认为我们应该在说明中添加一条说明,说明在 Windows 上安装时不要使用外部libusb包,因为这不是同类问题中的第一个问题。

问题是 Windows 有很多关于如何安装 libusb 的选项,还有许多具有不同 ABI 的编译器。 这就是为什么我们应该提供 Windows 版本。

我刚刚在其他机器上尝试过(在 C:\Windows\System32 中没有旧的 libusb)并且它可以工作(使用开发分支,最后一次提交 #a09ef54)。
因此,问题是由于其他项目已经存储和使用了其他 libusb 版本。

感谢您的支持和您的工作;)

重新打开它作为文档和相关工作仍然未完成......

此页面是否有帮助?
0 / 5 - 0 等级