web-dev-qa-db-ja.com

Qt:-lGLエラーが見つかりません

QtCreatorを再インストールし、新しいプロジェクト(Qt Application)を作成し、コンパイル後にこれを取得しました。

/usr/bin/ld: **cannot find -lGL**
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'

プロジェクトは空、変更はコミットしなかった

Qt Creator 2.7.2
Qt 5.1.0(32ビット)に基づく
Ubuntu 13.04

この問題を解決するにはどうすればよいですか?

91
Hofmn

パッケージ「libgl1-mesa-dev」をインストールする必要があります。

Sudo apt install libgl1-mesa-dev
138

何もインストールする必要はありません。 libGLはすでにUbuntuとともにインストールされています。ソフトリンクするだけです。 (ubuntu 14.xおよび15.xでテスト済み。後のバージョンでも動作する可能性があります)

  1. 最初にGLライブラリを見つけます
  2. 次に、/ usr/libの下にリンクします
  3. ライブラリが見つからない場合は、libgl1-mesa-devパッケージを介してインストールできます

これを行う方法は次のとおりです。

$ locate libGL
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
$ Sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
60
destan

私のシステムは、X86コンピューター上のUbuntu 16.04(NVIDIA Geforce GPUを使用)です。

/usr/lib/x86_64-linux-gnuにあるライブラリファイルを確認します

ls -al /usr/lib/x86_64-linux-gnu/libG*

リンクが壊れている場合は、libgl1-mesa-glxを再インストールしてください

Sudo apt install --resintall libgl1-mesa-glx

そして、ライブラリを再確認してください。

1
Lastea

書く:

yum provides */libGL.so 

提供後:

yum install mesa-libGL-devel mesa-libGLU-devel
1
Shojib Mahmud

Gui Qtモジュールは デフォルトで含まれています です。プロジェクトで使用したくない場合(たとえば、ライブラリであるか、stdioのみを使用する場合)、. proファイルで指定する必要があります。

QT -= gui

また、リンカーは、インストールされているかどうかに関係なく、lGLを見つけようとしません。

Qtを使用する主な理由はguiを作成することだからです。 GLライブラリをインストールすることは確かに難しくありません。ただ、なぜ早くて汚いHello Worldがそれを望んだのかを知りたかっただけです。

1
squeevee

これは私のために働いた:

Sudo ln -s /usr/lib/libEGL1.so /usr/lib/libGL.so
0