Điểm:5

Làm cách nào để biên dịch ứng dụng GTK4 trong Ubuntu 21.10?

lá cờ kr

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?

lá cờ us
Bạn đã cài đặt `libgtk-4-dev` chưa? Nếu không, hãy cài đặt nó với `Sudo apt install libgtk-4-dev`
Leigh K avatar
lá cờ kr
Không, tôi đã không, và điều đó đã giải quyết được vấn đề. Không chắc tại sao điều đó lại cần thiết khi GTK4 có mặt trên HĐH mà tôi không tải xuống.
lá cờ us
Nó không có mặt, nó có sẵn trong kho để tải xuống (giống như, màn hình nền KDE có sẵn trong kho, nhưng rất có thể bạn chưa cài đặt nó). Nó không xuất hiện theo mặc định vì rất ít phần trăm người dùng (chỉ những người phát triển ứng dụng GTK4) sẽ yêu cầu nó.
lá cờ us
Tôi đã tạo thẻ gtk4.
Điểm:6
lá cờ us

Bạn sẽ cần phải cài đặt libgtk-4-dev, với lệnh

sudo apt cài đặt libgtk-4-dev

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.