【问题标题】:/usr/bin/ld: cannot find -lGL/usr/bin/ld: 找不到 -lGL
【发布时间】:2015-05-19 09:40:45
【问题描述】:

我已经安装了 qt,当我在 qt 上运行应用程序时出现此错误。

 /usr/bin/ld: cannot find -lGL
 collect2: error: ld returned 1 exit status
 make: *** [test3] Error 1
 14:05:48: The process "/usr/bin/make" exited with code 2.

我认为这个错误与 OpenGL 有关。
我已经运行了所有这些命令,但什么也没发生

 sudo apt-get install libgl1-mesa-dev
 sudo apt-get install libgl1-mesa-glx libgl1-mesa-dev

我的专业档案是:

  #-------------------------------------------------
  #
  # Project created by QtCreator 2015-05-19T17:40:19
  #
  #-------------------------------------------------

  QT       += core gui

   greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

  TARGET = test19
  TEMPLATE = app

   SOURCES += main.cpp\
    mainwindow.cpp

   HEADERS  += mainwindow.h

   FORMS    += mainwindow.ui

【问题讨论】:

  • 运行ldconfig -p | grep libGL.so。如果它包含libGL.so - 重启QtCreator。
  • 你在关注wiki.qt.io/Building-Qt-5-from-Git吗?当我设置 Linux 机器时,这通常可以为我完成工作。
  • 终端在我运行命令 libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa 时显示这个/libGL.so.1 libGL.so.1 (libc6, OS ABI: Linux 2.4.20) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 我已经关闭了 qt creator 然后运行再次但得到同样的错误@Amartel

标签: c++ qt opengl qt-creator


【解决方案1】:

当我运行命令时,终端会显示这个

libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 libGL.so.1 (libc6, OS ABI: Linux 2.4.20) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1

安装所需软件包时未创建正确链接。我不知道为什么,但是您可以通过以下方式解决此问题:

sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so
sudo ldconfig

【讨论】:

  • ldconfig -p | grep libGL.so 现在是否显示所有 4 个库?
  • libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 libGL. so.1 (libc6, OS ABI: Linux 2.4.20) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 libGL.so (libc6,x86-64, OS ABI: Linux 2.4. 20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so libGL.so (libc6, OS ABI: Linux 2.4.20) => /usr/lib/i386-linux-gnu/mesa/libGL .so 是的@Amartel
  • 重启(以防万一),打开终端并运行这些命令:cd /tmp,echo "int main() {return 0;}" > main.cpp,gcc -lGL -omain main.cpp。如果它没有错误地完成,那么您的链接器很好 - 尝试重建您的项目 (Build->Rebuild All)。
  • 在我的示例中或在重建项目时出现同样的错误?
  • 您能否将您的“专业”文件添加到您的问题中。
猜你喜欢
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 2018-01-15
  • 2012-12-13
  • 1970-01-01
  • 2013-02-08
  • 2021-05-07
  • 2011-07-16
相关资源
最近更新 更多