Qt không thể tìm thấy GL / gl.h nhưng libGL.so tồn tại


12

Tôi đang chạy Ubuntu 64.04 64 bit.

Lỗi biên dịch tôi nhận được là:

In file included from ../../../Qt/5.4/gcc_64/include/QtOpenGL/qgl.h:39:0,
                 from ../../../Qt/5.4/gcc_64/include/QtOpenGL/qglshaderprogram.h:37,
                 from ../../../Qt/5.4/gcc_64/include/QtOpenGL/QGLShaderProgram:1,
                 from glwidget.h:5,
                 from glwidget.cpp:1:
../../../Qt/5.4/gcc_64/include/QtGui/qopengl.h:122:21: fatal error: GL/gl.h: No such file or directory
 #  include <GL/gl.h>
                     ^

Thật kỳ lạ, tôi dường như đã cài đặt libGL.so đúng cách và được liên kết với các thư viện OpenGL được cài đặt bởi trình điều khiển hiển thị Nvidia 343 của tôi (mà tôi đoán là cũng cài đặt trình điều khiển OpenGL).

$ ls -l /usr/lib | grep -i libgl
lrwxrwxrwx  1 root root           17 Jan 15 12:47 libGLESv1_CM.so -> libGLESv1_CM.so.1
lrwxrwxrwx  1 root root           22 Jan 15 12:47 libGLESv1_CM.so.1 -> libGLESv1_CM.so.343.36
-rwxr-xr-x  1 root root        48248 Jan 15 12:47 libGLESv1_CM.so.343.36
lrwxrwxrwx  1 root root           14 Jan 15 12:47 libGLESv2.so -> libGLESv2.so.2
lrwxrwxrwx  1 root root           19 Jan 15 12:47 libGLESv2.so.2 -> libGLESv2.so.343.36
-rwxr-xr-x  1 root root        62352 Jan 15 12:47 libGLESv2.so.343.36
-rw-r--r--  1 root root          654 Jan 15 12:47 libGL.la
lrwxrwxrwx  1 root root           10 Jan 15 12:47 libGL.so -> libGL.so.1
lrwxrwxrwx  1 root root           15 Jan 15 12:47 libGL.so.1 -> libGL.so.343.36
-rwxr-xr-x  1 root root      1274520 Jan 15 12:47 libGL.so.343.36

Tôi đã thấy một số bài viết trước đó đề nghị làm

sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

nhưng khi tôi thử nó, nó đã hạ cấp phiên bản OpenGL được hỗ trợ của tôi (như được xuất ra bởi glxinfo) xuống v1.4. Ngoài ra tôi không chắc tại sao điều đó lại có ích.

Đây là đầu ra glxinfo của tôi.

$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 970/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 343.36
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 343.36
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

Cảm ơn


1
Thư viện và tệp tiêu đề là những thứ khác nhau: hệ thống của bạn đã mesa-common-devcài đặt gói chưa?
Steeldo

Câu trả lời:


19

Liên quan đến tài liệu Qt :

Các trình cài đặt Qt cho Linux giả định rằng trình biên dịch C ++, trình gỡ lỗi, tạo và các công cụ phát triển khác được cung cấp bởi hệ điều hành máy chủ. Ngoài ra, việc xây dựng các ứng dụng Qt đồ họa yêu cầu các thư viện và tiêu đề OpenGL được cài đặt. Hầu hết các bản phân phối Linux không cài đặt tất cả các bản này theo mặc định, nhưng việc thiết lập môi trường phát triển vẫn đơn giản.

Sử dụng các lệnh sau để cài đặt các yêu cầu cơ bản để xây dựng các ứng dụng Qt:

sudo apt-get install build-essential libgl1-mesa-dev

tại sao? Điều này sẽ giúp gì với?
Tim

Nếu bạn đọc tài liệu mà tôi chỉ ra ở trên, bạn sẽ biết lý do
Habibillah

15

À, như @steel ấn chỉ ra, các tiêu đề và thư viện là những thứ khác nhau và việc thực hiện sau đây đã khắc phục vấn đề:

sudo apt-get install mesa-common-dev

Điều này cài đặt các tiêu đề cần thiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.