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


109

私は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 ベース)

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


あなたはopenglをインストールしていますか?
lpapp 2013


回答:


157

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

sudo apt install libgl1-mesa-dev

6
これは正解ですか?使用されていないライブラリに対してリンクする必要があるのはなぜですか?リンカフラグに単純に含めないで-lGLください。
Cuadue 2014年

6
@Cuadue:エラーおよびlibgl1 -...のGLは、Qt 5.xの基本的な依存関係であるOpenGL用です。これは、開発者がQt開発用にセットアップする際の一般的なエラーです。ただし、OpenGL開発libをインストールすると、二度と表示されなくなります。
pixelgrease 2015年

Ubuntu 20.04には、必要なOpenGLライブラリが付属しています。パッケージをインストールする必要はありません。/usr/libにlnリンクを作成するために使用する必要があります。デスタンの回答を参照してください。20.04 パッケージには、有用なものは何もないようです。
jrh

74

何もインストールする必要はありません。libGLUbuntuで既にインストールされている場合は、ソフトリンクするだけです。(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

1
うん、これはうまくいく。通常、ldconfigこの場合のように共有ライブラリを処理した後に実行することをお勧めします。
ホセ・トマスTocino

答えてくれてありがとう!私のシステムでは、Android sdk、steam、その他のアプリケーションのために、複数のlibGLがありました。元のmesaフォルダーもフォルダーにありましたi386-linux-gnu。この回答を読んでいる人は、Ubuntuにインストールされているデフォルトのライブラリを実行して簡単に見つけることができます。locate libGL | grep mesa次にsudo ln、この回答に記載されている最後のコマンドを正しい場所に変更します。
Akash Agarwal、2016年

1
これはUbuntu 16.10ではうまくいきましたが、OpenGLレンダリングにNVidia GPUを使用しているのか、それともas / wレンダラーを使用しているのか混乱していますか?
DavidJ '12年

この回答は、pkg-configの質問を解決しないようです。IE:pt-config --libsを使用するように設定されたqtビルド行がある場合、このソリューションはまだGLに対して何も返しませんか?安全のために、私はmesa-devをインストールしました。
Alex Summers

3
あなたはサー、大きな目盛りであった詐欺師ではなくクッキーに値します
djangodude 18/06/18

3

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

QT -= gui

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

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




1

私のシステムはx86コンピューター(NVIDIA GeForce GPU搭載)上のUbuntu 16.04です。

にあるライブラリファイルを確認してください /usr/lib/x86_64-linux-gnu

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

壊れたリンクが表示された場合は、再インストールします libgl1-mesa-glx

sudo apt install --reinstall libgl1-mesa-glx

そして、ライブラリを再確認します。


0

私の場合:Win10 64ビットにQT 32ビットlibをインストールしましたが、エラーが発生しました。すべての64ビットに変更し、QTクリエーターをスムーズに実行しました。


-1

suseでこの問題を1分前に解決しました。以下の手順を実行するだけで、QTCreatorは問題なく動作します。

sudo zypper install --typeパターンdevel_basis

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.