Tôi đang cố biên dịch ứng dụng C GUI bằng GTK4. trước đây tôi đã nói đây rằng cả Ubuntu 21.04 và 21.10 sẽ có cả GTK3 và GTK4. Tuy nhiên, khi tôi cài đặt Ubuntu 21.04, chỉ có GTK3. Sau đó, tôi đã nâng cấp lên 21.10 và nhận thấy rằng cả hai phiên bản GTK đều là bản địa:
người dùng@người dùng: dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
ii libgtk-3-0:amd64 3.24.30-1ubuntu1 thư viện giao diện người dùng đồ họa AMD64 GTK
ii libgtk-3-bin 3.24.30-1ubuntu1 chương trình AMD64 cho thư viện giao diện người dùng đồ họa GTK
ii libgtk-3-common 3.24.30-1ubuntu1 tất cả các tệp phổ biến cho thư viện giao diện người dùng đồ họa GTK
ii libgtk-3-dev:amd64 3.24.30-1ubuntu1 tệp phát triển AMD64 cho thư viện GTK
ii libgtk-3-doc 3.24.30-1ubuntu1 tất cả tài liệu cho thư viện giao diện người dùng đồ họa GTK
ii libgtk-4-1:amd64 4.4.0+ds1-5 thư viện giao diện người dùng đồ họa AMD64 GTK
ii libgtk-4-bin 4.4.0+ds1-5 chương trình AMD64 cho thư viện giao diện người dùng đồ họa GTK
ii libgtk-4-common 4.4.0+ds1-5 tất cả các tệp phổ biến cho thư viện giao diện người dùng đồ họa GTK
ii libgtk2.0-0:amd64 2.24.33-2ubuntu1 thư viện giao diện người dùng đồ họa AMD64 GTK - phiên bản cũ
ii libgtk2.0-bin 2.24.33-2ubuntu1 chương trình AMD64 cho thư viện giao diện người dùng đồ họa GTK
ii libgtk2.0-common 2.24.33-2ubuntu1 tất cả các tệp phổ biến cho thư viện giao diện người dùng đồ họa GTK
ii libgtk3-perl 0,038-1 tất cả các ràng buộc Perl cho thư viện giao diện người dùng đồ họa GTK+
Chỉ cần kiểm tra kỹ phiên bản Ubuntu mang lại:
người dùng @ người dùng: lsb_release -a
Không có mô-đun LSB nào khả dụng.
ID nhà phân phối: Ubuntu
Mô tả: Ubuntu 21.10
Phát hành: 21.10
Tên mã: impish
GTK trang nói sử dụng cách sau để biên dịch ứng dụng GTK4 bằng cách sử dụng pkg-config
:
gcc $( pkg-config --cflags gtk4 ) -o ví dụ-0 ví dụ-0.c $( pkg-config --libs gtk4 )
Điều này rất giống với các phiên bản trước của GTK. Đối với GTK3, đó là:
gcc $( pkg-config --cflags gtk+-3.0 ) -o example-0 example-0.c $( pkg-config --libs gtk+-3.0 )
Tuy nhiên, cố gắng biên dịch chương trình bằng GTK4 dẫn đến:
người dùng @ người dùng: thực hiện
Không tìm thấy gói gtk4 trong đường dẫn tìm kiếm pkg-config.
Có lẽ bạn nên thêm thư mục chứa `gtk4.pc'
đến biến môi trường PKG_CONFIG_PATH
Không tìm thấy gói 'gtk4'
Vậy thì dựa vào đây Tôi chạy:
người dùng @ người dùng: pkg-config --biến pc_path pkg-config
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib /pkgconfig:/usr/share/pkgconfig
Tìm kiếm tất cả các đường dẫn đó, tôi chỉ tìm thấy các tệp .pc liên quan đến GTK trong /usr/lib/x86_64-linux-gnu/pkgconfig
và tôi không tìm thấy gì cho GTK4. tôi tìm thấy gtk+-3.0.pc
mặc dù vậy. Vì vậy, câu hỏi của tôi là, nếu GTK4 có nguồn gốc từ Ubuntu 21.10, tại sao các tệp pkg-config lại bị thiếu? Tôi lấy chúng ở đâu để tôi có thể biên dịch bằng pkg-config?
BÊN NGOÀI: Tôi không có đủ danh tiếng để tạo ra gtk4
nhãn. Một người có đủ danh tiếng có thể làm như vậy không?