Stlink: [互換性] `libusb_set_option 'への未定義の参照

作成日 2020年03月25日  ·  12コメント  ·  ソース: stlink-org/stlink

こんにちは、みんな、

MinGW-w64を使用してWindows10でプロジェクトをコンパイルしようとしましたが、成功しませんでした。
エラーは次のとおりです。
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
確かにこのバージョンは古いです。

これについてあなたの意見は何ですか。

@ purjus74libusbの問題は手動でダウンロードすることだと思います。
取り外してください。 すべてのビルドをクリアします。 そしてもう一度試してください。

詳細を説明するだけです。
プロジェクトを使用する前に、私のシステムにはすでに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抽出中のエラー)は私の会社の保護によるものだと思います:(
このf *#! 保護により、必要なアーカイブファイルが作成されますが、エラー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 評価