GNU/Linux >> Linux の 問題 >  >> Linux

libusb への未定義の参照

リンカーでコンパイル用のライブラリ リンカー フラグを設定する必要があります。

を実行すると、コンソールで完全なリストを取得できます。
pkg-config --list-all

これらはシステムにインストールしたライブラリであり、使用したいライブラリにリンクする必要があります。例では libusb なので、そうします

pkg-config --libs libusb

出力があるはずです

-lusb

または

-lusb-1.0

これにより、リンカーに渡す必要があるフラグが得られます。例

g++ myfile.cpp -lusb[-1.0]

次に、プロジェクトの構成を編集し、リンカーフラグを検索します。ビルドオプションのどこかにそのためのテキストフィールドがあるはずです。どこで見つけられるかはよくわかりませんが、グーグルで検索してみてください:

Project -> Properties -> C/C++
Build -> Miscellaneous -> flags

見つかったら、リンカ フラグをテキスト フィールドに追加するだけで問題ありません。

編集

私の答えは受け入れられたものなので、多くの人に役立つと思われる他のフラグも追加しました.


リンカーのコマンドラインは何ですか? -lusb が必要です リンクコマンドで;ヘッダーを含めるだけでは機能しません。


私は同じ問題に直面しました。しかし、リンカーに「-lusb-1.0」を追加することで解決できました。

例:g++ myfile.cpp -lusb-1.0


Linux
  1. 10の便利なsystemdコマンド:リファレンス

  2. MPIコンパイルエラー: `sqrt'への未定義の参照–解決済み

  3. Linux c++ エラー:'dlopen' への未定義の参照

  1. C++ エラー:'clock_gettime' および 'clock_settime' への未定義の参照

  2. C++ Boost:boost::system::generic_category() への未定義の参照

  3. numpy 未定義シンボル:PyFPE_jbuf

  1. シンボル '_ZN5boost6system15system_categoryEv' エラーへの未定義参照

  2. Linux カーネル バージョン 4.12.8 で copy_to_user が定義されていない

  3. ゴールドリンカーとは何ですか?