【发布时间】:2018-07-24 16:03:44
【问题描述】:
我在使用 CMake 后尝试使用 make 编译一个简单的 Qt 程序,但我不断收到此错误:
/usr/bin/ld: warning: libGL.so.1, needed by /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1, not found (try using -rpath or -rpath-link)
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1: undefined reference to `glGetTexParameterfv'
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1: undefined reference to `glHint'
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1: undefined reference to `glClearColor'
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.5.1: undefined reference to `glFlush'
...
collect2: error: ld returned 1 exit status
我已经通过sudo apt install --reinstall libgl1-mesa-dev 重新安装了libgl1-mesa-dev,确保在我的/usr/lib/x86_64-linux-gnu/mesa 目录中安装了libGL.so.1,并且我运行sudo ldconfig 无济于事。
我不确定是什么原因造成的,我还没有在其他任何地方看到过这个问题。这似乎是我忽略的一个依赖项,但是我使用 sudo apt install qt5-default 安装了 Qt,所以我认为这些依赖项会得到处理。
这是我的 CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(SimpleQt)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_AUTOMOC ON)
find_package(Qt5Widgets CONFIG REQUIRED)
include_directories(include)
add_executable(SimpleQt src/main.cpp)
target_link_libraries(growth Qt5::Widgets)
【问题讨论】:
-
非常相似的问题,见this answer
-
谢谢。我设法让它工作,但我仍然觉得我不应该自己与 OpenGL 链接。