こんにちは、みんな、
MinGW-w64を使用してWindows10でプロジェクトをコンパイルしようとしましたが、成功しませんでした。
エラーは次のとおりです。
C:/stlink/src/sg.c:972: undefined reference to 'libusb_set_option'
私の環境は次のとおりです。
手伝って頂けますか?
コンパイルの完全なログ: log.txt
前もって感謝します。
ジュ
代わりにdevelop
ブランチを試してください。 リリースv1.6.0以降、 libusb
関連するいくつかの修正があったと思います。
言及されたエラーは表示されませんが、コンパイルは失敗しました。
備考を付け加えたいと思います。
最後のログは、システムにすでにlibusbがあることを示しています。
-- Found Libusb: C:/Windows/System32/libusb-1.0.dll
確かにこのバージョンは古いです。
これについてあなたの意見は何ですか。
@ purjus74libusbの問題は手動でダウンロードすることだと思います。
取り外してください。 すべてのビルドをクリアします。 そしてもう一度試してください。
詳細を説明するだけです。
プロジェクトを使用する前に、私のシステムにはすでにlibusbインスタンスがありました。
バッチ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
...
アーカイブはファイルが破損しているようです:(
@slyshykO :その通りです。最初は、外部のlibusb
ライブラリが存在することに気づきませんでした。
この動作(libusb-1.0.22.7z抽出中のエラー)は私の会社の保護によるものだと思います:(
このf *#! 保護により、必要なアーカイブファイルが作成されますが、エラーhtmlページが含まれています!!!
しかし、それが良い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バージョンが原因です。
あなたのサポートとあなたの仕事に感謝します;)
ドキュメントと関連作業が未解決のままであるため、これを再開します...