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

リンク エラー:コマンド ラインに DSO がありません

これが、私のように Linux を初めて使用する人や、Linux に関連することが特に明白であるとは思わない人の助けになることを願っています。

talonmies が指摘したように、間接的にリンクすることはできないため、使用しているライブラリに必要な追加のライブラリを指定する必要があります。つまり、ライブラリ B と C を必要とするライブラリ A をリンクする場合、プログラムが正しくリンクするには、3 つのライブラリすべてをリンクする必要があります。

他に必要なライブラリを見つけるために、 pkg-config を使用しました コマンドについては、こちらでガイドを見つけました。 pkg-config --print-requires --print-requires-private glfw3 を実行中 glfw3 に必要なパッケージのリストである次の出力が得られました。

x11
xrandr
xi
xxf86vm
gl

pkg-config --libs を実行して、含める必要のあるライブラリを見つけることができました。 、その後にライブラリの名前が続きます。例:pkg-config --libs x11 -lX11 が得られました .

注:複数の項目を pkg-config に渡すことができます 入力として実行中

pkg-config --libs $(pkg-config --print-requires --print-requires-private glfw3)

リンクする必要があるすべての追加ライブラリを出力します (-lX11 -lXrandr -lXi -lXxf86vm -lGL ).

私のプログラムは正常にリンクするようになりました。これが同様の問題を抱えている人に役立つことを願っています.


リンカには X11 ライブラリが必要です。リンカに -lX11 を指定する必要があります

試してみてください

/usr/local/cuda/bin/nvcc -arch=compute_30 -code=sm_30,compute_30 -o Main.o Display.o FileUtil.o Timer.o NeuralNetwork.o -L/usr/lib -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lGLEW -lglfw3 -lGL -lGLU -lcuda -lcudart -lX11

Makefile のライブラリ リスト (コマンド ライン) の最後に -pthread を追加してみてください。

それは私のために働いた。


Linux
  1. コマンドラインからリモートでLinuxワークスペースを構成する

  2. Linuxコマンドラインから電子メールの添付ファイルを送信する4つの方法

  3. コマンドラインからWordPressのバージョンを見つける

  1. コマンドLinuxラインからのmatlab実行スクリプト

  2. コマンド ライン:出力から部分文字列を抽出する

  3. コマンドラインから IP アドレスを取得するにはどうすればよいですか?

  1. QuickWall –Unsplashからのコマンドラインツール設定の壁紙

  2. Linuxのコマンドラインからトレントを検索

  3. コマンドラインからの Clonezilla