【问题标题】:Qt Creator compile error "cannot find -lGL". Other solutions are not workingQt Creator 编译错误“找不到 -lGL”。其他解决方案不起作用
【发布时间】:2014-12-13 17:42:27
【问题描述】:

我已经在运行 ubuntu 12.04 的 amd 机器上安装了 QT5,它也带有 QT creator。如果重要的话,我的图形驱动程序是 radeon r9270x。

当我尝试编译基本的“hello world”类型的 Qt 程序时,我收到错误消息“找不到 -lGL”。我已经到处搜索了(Qt: can't find -lGL error),它说要使用“sudo apt-get install libgl1-mesa-dev”,但是当我这样做时,我已经安装了它。在这里(Installing Qt on linux, cannot find -lGL)它说要安装“sudo apt-get install libgl-dev”,但这只会让我明白

"读取包列表...完成构建依赖树读取 状态信息... Done Package libgl-dev 是一个虚拟包 提供者:libgl1-mesa-swx11-dev 8.0.4-0ubuntu0.7
libgl1-mesa-dev-lts-trusty 10.1.3-0ubuntu0.1~precise1
libgl1-mesa-dev-lts-saucy 9.2.1-1ubuntu3~precise1
libgl1-mesa-dev-lts-raring 9.1.7-1ubuntu2~precise1
libgl1-mesa-dev-lts-quantal 9.0.3-0ubuntu0.4~precise1
libgl1-mesa-dev 8.0.4-0ubuntu0.7 您应该明确选择一个 安装。

E: 软件包 'libgl-dev' 没有安装候选"

我用过的各种其他资源说做类似的事情,但我仍然得到这个错误。有任何想法吗? 另一方面,不知道相关性,我无法让 QT creator 发布最长时间。它总是会出现故障和核心转储。我终于更新了我的 amd catylist 控制中心/视频驱动程序并解决了这个问题。

这是 qt creator 的编译输出:

02:34:21:项目 myHelloWorld 的运行步骤... 02:34:21: 配置不变,跳过 qmake 步骤。 02:34:21:开始: “/usr/bin/make”g++ -Wl,-rpath,/media/UsbExternalDrive/DesignTools/Qt5.3/5.3/gcc_64 -Wl,-rpath,/media/UsbExternalDrive/DesignTools/Qt5.3/5.3/gcc_64/lib -o myHelloWorld main.o
-L/media/UsbExternalDrive/DesignTools/Qt5.3/5.3/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread /usr/bin/ld:找不到 -lGL collect2:ld 返回 1 个退出状态 make:** * [我的HelloWorld] 错误 1 ​​02:34:21:进程“/usr/bin/make”以代码 2 退出。 构建/部署项目 myHelloWorld 时出错(工具包:Desktop Qt 5.3 GCC 64bit) 执行步骤“Make”时 02:34:21:经过时间:00:00。

【问题讨论】:

    标签: linux qt ubuntu installation


    【解决方案1】:

    尝试运行它,重新启动 Qt creator 并尝试一个干净的构建。

    sudo apt-get install mesa-common-dev
    

    编辑: 可能是你错过了 Mesa 包。查看列出的 XCB 依赖项 here 并安装缺少的内容。

    我在另一个案例中也看到过这个错误,但我不记得那里的解决方案。我想我已经通过安装“libglu1-mesa-dev”包解决了这个问题。

    sudo apt-get install libglu1-mesa-dev -y
    

    但我不完全确定这是否解决了问题,或者我必须安装其他任何东西。

    【讨论】:

    • 封闭的 QT 创建者。运行上面的命令。它什么也没做,因为这些组件已经安装。重启QT Creator,再次尝试编译项目,同样报错。
    • 运行“sudo apt-get install libglu1-mesa-dev -y”不会安装任何东西,因为所有组件都已安装。至于你的链接,ubuntu 的 xcb 东西需要这个“ sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev" 并且它什么都没有安装,因为一切都已经安装了。
    • 您是否检查了我在答案中输入的 Qt 页面的链接?
    • 嗯...这个问题看起来很有趣。
    • 你能发布你的实际编译命令行,以便我可以看到链接参数吗?
    【解决方案2】:

    所以我发现对我有用,我手动添加了库的路径并编译。然后我能够删除手动添加的路径。我假设在后端的某个地方它没有搜索正确的位置,一旦显示它就会记住并保持正确的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-26
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多