前言
最近在了解GTK+-3.0界面开发相关,由于自身用的系统环境是windows,开个linux虚拟机来开发的话总归是麻烦了点,于是开始寻找 windows上快捷搭建 GTK+-3.0 编译环境的方法,在经过尝试后,大概有三种办法,下面会对这些方法进行详细介绍。
msys2
第一种方法便是是使用 msys2 跨平台编译环境,安装 mingw32 直接在控制台中使用命令对 GTK+-3.0 工程进行编译,基于 msys2 的 mingw32 编译环境的具体搭建方法可以参考我之前的文章:
https://magicdmer.site/783.html
当我们搭建完环境后,打开 mingw32 环境安装 GTK+-3.0 开发库,如下
Administrator@MRROBOT-PC MINGW32 ~
# pacman -Ss gtk3 //查询安装包
mingw32/mingw-w64-i686-gtk3 3.24.23-1 [已安装]
...
Administrator@MRROBOT-PC MINGW32 ~
# pacman -S mingw-w64-i686-gtk3
Administrator@MRROBOT-PC MINGW32 ~
# pacman -S mingw-w64-i686-pkg-config
接着我们新建一个 GTK+-3.0 源码文件 main.c
#include <stdio.h>
#include <gtk.h>
int main()
{
gtk_init(NULL);
......
gtk_main();
}
然后使用下面的命令进行编译
gcc main.c `pkg-config --cflags --libs glib-2.0 gtk+-3.0` -o helloword
这种方法就是比较原始的方法了,但是我们后续的方法都是基于这个 msys2的mingw32 环境来展开的
msys2 + visualstudio + visualgdb
这种办法就是使用IDE了,要比上面的方法方便太多,这里最主要的是这个 visualgdb ,这是个vs的跨平台开发插件,是收费的。所以如果你要使用的话,可能需要去找个特别版本,网上可以搜到。
我们下载 visualgdb 安装后,新建工程,如图
因为我们讲述的是在windows上开发gtk3,所以我们选择 MingGW 工程,它也支持远程创建linux工程,本地修改代码后自动同步到linux机器进行编译调试,暂且不表
后续的设置如图所示
Toolchain选项需要设置成你安装 msys32 的位置
然后工程新建完毕,我们在工程上右键,选择 VisualGDB 设置,设置如下:
为了方便大家拷贝(这也是这种方法麻烦的地方),这里发一下参数:
include: E:msys32mingw32include E:msys32mingw32includegtk-3.0 E:msys32mingw32includeglib-2.0 E:msys32mingw32libglib-2.0include E:msys32mingw32includepango-1.0 E:msys32mingw32includecairo E:msys32mingw32includegdk-pixbuf-2.0 E:msys32mingw32includeatk-1.0
lib: gtk-3.dll glib-2.0 gio-2.0 gdk-3.dll cairo atk-1.0.dll pango-1.0.dll gobject-2.0
然后大家就可以愉快的开发的! 这种方法相对于第一种方法要简单,但是我依旧感觉每次新建工程都要配置一堆参数是很蛋疼的事情,所以我接着寻找
msys2 + codeblocks (推荐)
下载地址:http://www.codeblocks.org/downloads/binaries
这个方法是我推荐的方法,超级简单,首先我们配置一下编译器
Settings --- compiler
然后需要做的就是自定义一个 gtk+-3.0 的工程向导模板,因为自带的只有 gtk+-2.0 的,如图:
如图,这个 GTK+-3.0 project 是我自定义的工程模板,新建完后工程如下:
这个默认的 main.c 也是我自定义的模板,大家可以自行修改,模板文件如下:
链接: https://pan.baidu.com/s/1WljtnhG1ocnqW25pv8OWAA
提取码: cycy
然后解压后放到 codeblock 的 wizard 目录,我的是
C:Program FilesCodeBlocksshareCodeBlocks emplateswizard
然后修改该目录下的 config.script 文件,注册我们的工程模板
RegisterWizard(wizProject, _T("gtk3"), _T("GTK+-3.0 project"), _T("GUI"));
然后启动 codeblocks 新建工程就可以看到我们的工程模板了,在这个界面是可以右键对模板进行修改的,修改后后续可以随时右键恢复。如果没有出现模板,那么请在这个新建界面右键编辑全局文件,IDE会打开 config.script 文件让我们修改,修改完后重启 codeblocks 即可
这种方式感觉是最好的方法,linux上也可以使用它进行gtk+-3.0开发
总结
上面就是三种在windows上搭建gtk+-3.0工程编译环境的方法,除了这三种之外,还有其他的,比如 vscode+cmake 的方式,由于文章太长了就不写了,大家可以自行去搜索了解