gtk-3.0学习笔记1-环境配置

本文介绍如何在Linux16.04环境下配置GTK3.0开发环境,包括安装GTK及相关工具、使用code::Block16.01进行GTK3.0编程的方法。文中提供了一个简单的GTK应用程序示例,并详细说明了编译和运行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译环境Linux16.04,Gtk3.0,code::Block16.01。

1.配置GTK3.0的环境

查看是否安装了GTK

pkg-config --list-all | grep gtk

安装编译工具 —- 这将安装gcc/g++/gdb/make 等基本编程

sudo apt-get install build-essential

安装GTK的命令

sudo apt-get install gnome-devel gnome-devel-docs

安装时候可以使用pkg-config查看一下是否安装成功

//查看GTK库版本:
pkg-config --modversion gtk+-2.0
pkg-config --modversion gtk+-3.0

测试GTK配置是否可以正常运行
新建一个gtk_test .c的文件,复制下面内容到该文件中

int main(int argc,char *argv[]
{
   GtkWidget    *window;
   GtkWidget    *label;
   gtk_init(&argc,&argv);
   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title(GTK_WINDOW(window),"Hello World");
   g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit),NULL);
   label = gtk_label_new("Hello, World");
   gtk_container_add(GTK_CONTAINER(window),label);
   gtk_widget_show_all(window);
   gtk_main();
   return 0;
}

编译命令:

gcc -o gtk_test gtk_test.c `pkg-config --cflags --libs gtk+-2.0`

或者:

gcc -o gtk_test gtk_test.c `pkg-config --cflags --libs gtk+-3.0`

运行命令:

./gtk_test

该方法来源百度经验http://jingyan.baidu.com/article/e9fb46e17ba76f7521f766d5.html

2.code::Block编辑器

检查Ubuntu安装code::Block正确的版本

add-apt-repository ppa:damien-moore/codeblocks-stable

好像是显示ok之后执行下一步

apt-get install codeblocks codeblocks-contrib

期间可能会需要多次执行下面代码

apt-get update
apt-get install codeblocks codeblocks-contrib

接下来慢慢等待,就会成功

在code::Block中配置gtk3.0

在编辑器菜单栏中Settings中选择 Compiler如下图所示

配置GTK3.0

选择Global compiler settings,如下图输入如下代码

`pkg-config --cflags gtk+-3.0`

这里写图片描述

`pkg-config --libs gtk+-3.0`

这里写图片描述

接下来就大功告成了,随便创建一个Empty file就可以使用gtk-3.0啦

如果有写的不对的地方,欢迎联系843462167@qq.com

<think>我们正在处理一个Ubuntu系统中安装特定版本软件包的问题。用户希望安装gir1.2-gtk-3.0的特定版本3.24.18-1ubuntu1,但遇到了问题。根据引用资料,常见的错误是依赖关系不满足,或者有冲突的包版本。 分析引用: 引用[1]和[3]都提到了类似的问题:安装libgtk-3-dev时,要求特定版本的gir1.2-gtk-3.0,但系统中正要安装的是更高版本(3.24.20-0ubuntu13.24.20-0ubuntu1.1)。这导致依赖不满足。 用户的问题:安装gir1.2-gtk-3.0的特定版本3.24.18-1ubuntu1失败。 可能的原因: 1. 软件源中可能没有这个特定版本的包(可能已被更新版本取代)。 2. 依赖的其他包需要更高的版本,导致无法降级。 3. 系统中已经安装了更高版本,且其他包依赖于这个高版本,因此无法降级。 解决方案: 1. 首先,尝试直接安装指定版本: sudo apt install gir1.2-gtk-3.0=3.24.18-1ubuntu1 2. 如果提示找不到版本,可能需要检查软件源中是否有该版本。可以尝试更新软件源列表: sudo apt update 3. 如果软件源中没有该版本,可以尝试添加旧版本的软件源(但需谨慎,可能导致系统不稳定)或者手动下载deb包安装。 4. 如果存在依赖冲突(常见情况),则需要考虑同时安装依赖包的对应版本。但依赖关系复杂,可能需要同时降级多个包,这可能会引起系统问题。 5. 另一种方法是使用aptitude工具,它提供更灵活的依赖解决方案: sudo apt install aptitude sudo aptitude install gir1.2-gtk-3.0=3.24.18-1ubuntu1 在aptitude中,它会给出解决方案,可能需要降级或移除一些包,需要仔细确认。 6. 如果以上方法都不行,可以考虑从Ubuntu官方仓库下载对应的deb包手动安装,但需要自行解决依赖。 手动下载安装步骤: a. 访问https://packages.ubuntu.com/,搜索gir1.2-gtk-3.0,选择对应的Ubuntu版本(例如focal,即20.04),然后找到3.24.18-1ubuntu1版本。 b. 下载该deb包,同时下载其依赖包(如果有的话)。 c. 使用dpkg安装:sudo dpkg -i package.deb,但如果有依赖问题,可能需要先安装依赖包,或者使用sudo apt-get install -f来修复。 注意:手动安装可能会破坏包管理系统的依赖关系,因此建议作为最后手段。 7. 如果用户是为了安装libgtk-3-dev而需要这个特定版本的gir1.2-gtk-3.0,那么可以尝试同时指定两个包的版本: sudo apt install libgtk-3-dev=3.24.18-1ubuntu1 gir1.2-gtk-3.0=3.24.18-1ubuntu1 8. 如果系统中已经安装了高版本的gir1.2-gtk-3.0,并且其他软件包依赖高版本,那么降级可能会导致那些软件包被卸载。因此,在降级前,需要评估是否值得。 由于用户的问题描述中并没有说明为什么需要这个特定版本,如果是开发需要,可以考虑使用容器(如docker)来创建一个隔离的环境,这样就不会影响主机系统。 步骤总结: 1. 尝试直接安装指定版本。 2. 更新软件源并重试。 3. 使用aptitude尝试解决依赖。 4. 手动下载deb包安装。 5. 考虑同时安装依赖包的指定版本。 6. 使用容器隔离环境。 根据引用[3]中提到的类似问题,用户可能是在安装OpenCV的依赖,所以如果可能,也可以考虑使用其他方法安装OpenCV(比如使用conda或从源码编译),避免系统包版本冲突。 最后,提醒用户:强制安装特定版本可能会导致系统不稳定,建议在测试环境中进行。</think>### 解决 Ubuntu 安装特定版本 gir1.2-gtk-3.0 失败的问题 根据引用[1][3]的报错信息,您遇到的依赖冲突核心是:**系统试图安装更新的 GTK 版本(3.24.20),但您需要旧版(3.24.18)**。以下是系统级解决方案: #### 步骤 1:验证软件源是否存在旧版本 ```bash apt-cache policy gir1.2-gtk-3.0 ``` 检查输出中是否有 `3.24.18-1ubuntu1` 的候选版本。若无此版本,需添加含旧版本包的软件源(如 Ubuntu 官方旧仓库)。 --- #### 步骤 2:强制安装特定版本(需完整包名) ```bash sudo apt install gir1.2-gtk-3.0=3.24.18-1ubuntu1 \ libgtk-3-0=3.24.18-1ubuntu1 \ libgtk-3-dev=3.24.18-1ubuntu1 ``` **关键点**: - 必须同时锁定 `libgtk-3-0` 和 `libgtk-3-dev` 的版本(引用[1][3]显示它们是强关联依赖) - 若提示 *"未满足的依赖"*,继续补充安装缺失的关联包版本 --- #### 步骤 3:解决依赖链断裂问题 若出现类似引用[2]的 `libepoxy-dev` 或 `nettle-dev` 缺失: 1. 手动添加旧版本仓库: ```bash echo "deb http://archive.ubuntu.com/ubuntu focal-updates/main" | sudo tee /etc/apt/sources.list.d/gtk-old.list sudo apt update ``` 2. 优先安装底层依赖: ```bash sudo apt install libepoxy-dev=1.5.4-1 nettle-dev=3.5.1+really3.5.1-2 ``` --- #### 步骤 4:终极方案 - 下载 .deb 包手动安装 若 APT 仍失败,从 Ubuntu 仓库直接下载: 1. 下载精确版本: ```bash wget http://archive.ubuntu.com/ubuntu/pool/main/g/gtk+3.0/gir1.2-gtk-3.0_3.24.18-1ubuntu1_amd64.deb ``` 2. 强制安装并忽略依赖: ```bash sudo dpkg -i --ignore-depends=libgtk-3-0 gir1.2-gtk-3.0_3.24.18-1ubuntu1_amd64.deb ``` > ⚠️ 此操作可能导致运行时崩溃,仅建议测试环境使用 --- #### 根本矛盾分析(引用[1][3]核心冲突) $$ \text{系统要求} : \begin{cases} \text{gir1.2-gtk-3.0} = 3.24.18 \\ \text{libgtk-3-0} = 3.24.18 \\ \text{libatk-bridge2.0-dev} \text{ 需配套版本} \end{cases} $$ 但 Ubuntu 默认仓库已升级至: $$ \text{可用版本} : \begin{cases} \text{gir1.2-gtk-3.0} \geq 3.24.20 \\ \text{libgtk-3-0} \geq 3.24.20 \end{cases} $$ 导致版本不等式冲突: $$ 3.24.18 \ngeq 3.24.20 $$ --- ### 替代建议 若需长期使用旧版 GTK,建议: 1. 使用 Docker 容器隔离环境: ```dockerfile FROM ubuntu:20.04 RUN apt update && apt install -y \ gir1.2-gtk-3.0=3.24.18-1ubuntu1 \ libgtk-3-dev=3.24.18-1ubuntu1 ``` 2. 编译 GTK 3.24.18 源码(避过包管理): ```bash wget https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.18.tar.xz tar xf gtk+-3.24.18.tar.xz && cd gtk+-3.24.18 meson build -Dprefix=/opt/gtk-3.24.18 && ninja -C build ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值