sublime text配置编译gtk程序

b6a581b47589a67a

1、安装MinGW

从MinGW官网安装MinGW很麻烦,而且在线安装经常龟速容易失败,雅乐网提供了解压版的MinGW,是从codeblocks-13.12mingw-setup安装后复制出来的:

http://pan.baidu.com/s/1gd5YzVP

解压后,可以在bin目录下找到我们需要的gcc.exe ,这就是我们需要的gcc编辑器。

2、把gcc所在目录添加到环境变量

这里以把MinGW放在c盘为例,你需要修改为自己电脑中MinGW的路径。

sublime text 3的c环境搭建 4

在path变量值里添加;C:\MinGW\bin 注意分号要在英文状态

sublime text 3的c环境搭建 5

确定以后 打开cmd 输入gcc 如果有反应就ok了

sublime text 3的c环境搭建 6

3、下载gtk并设置环境变量

gtk官网:http://www.gtk.org/download/index.php

推荐使用32位的版本,下载地址:http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip

如果使用64位版本,结合MinGW编译的时候会有错误= =

解压后 把gtk目录放到任意位置,我以c盘根目录为例

scrn20150227205943

把C:\gtk\bin 添加进环境变量

scrn20150227173902

4、新建gtk.sublime-build

需要先获得gtk参数。使用pkg-config –libs –cflags gtk+-3.0命令可以获得。

在cmd窗口,执行以下命令

pkg-config --libs --cflags gtk+-3.0 >> a.txt

scrn20150227210618

然后找到a.txt 复制里面的参数(注意只有一行)。

你应该使用自己的a.txt里面的,下面的代码只适用于gtk放在c盘根目录的情况。

-mms-bitfields -IC:/gtk/include/gtk-3.0 -IC:/gtk/include/cairo -IC:/gtk/include/pango-1.0 -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/pixman-1 -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include -IC:/gtk/include/libpng15 -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/libpng15 -IC:/gtk/include/glib-2.0 -IC:/gtk/lib/glib-2.0/include -LC:/gtk/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

选择tool –> Build System –> New Build System

scrn20150221161646

然后输入以下代码,其中用a.txt的内容替换“参数” 。注意不要有多余换行。

{
	"working_dir": "$file_path",
	"cmd": "gcc -Wall $file_name -o $file_base_name 参数 -mwindows",
	"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

	"variants": 
	[
		{	
			"name": "Run",
        	"shell_cmd": "gcc -w $file_name -o $file_base_name 参数 -mwindows && cmd /c \"${file_path}/${file_base_name}\""
		}
	]
}

结果是这样的。(如果你的gtk也是放在c盘根目录下,可以直接使用下面的内容)

{
	"working_dir": "$file_path",
	"cmd": "gcc -Wall $file_name -o $file_base_name -mms-bitfields -IC:/gtk/include/gtk-3.0 -IC:/gtk/include/cairo -IC:/gtk/include/pango-1.0 -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/pixman-1 -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include -IC:/gtk/include/libpng15 -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/libpng15 -IC:/gtk/include/glib-2.0 -IC:/gtk/lib/glib-2.0/include -LC:/gtk/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -mwindows",
	"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

	"variants": 
	[
		{	
			"name": "Run",
        	"shell_cmd": "gcc -w $file_name -o $file_base_name -mms-bitfields -IC:/gtk/include/gtk-3.0 -IC:/gtk/include/cairo -IC:/gtk/include/pango-1.0 -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/pixman-1 -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include -IC:/gtk/include/libpng15 -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/libpng15 -IC:/gtk/include/glib-2.0 -IC:/gtk/lib/glib-2.0/include -LC:/gtk/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -mwindows && cmd /c \"${file_path}/${file_base_name}\""
		}
	]
}

保存到user目录下(Sublime Text 3\Packages\User)  文件名为 gtk.sublime-build

scrn20150227211541

5、设置编译系统为gtk

scrn20150227211806

6、测试

现在打开.c文件后,就可以使用tool下面的Build和Run来编译和运行了。

快捷键:

默认Ctrl + B 是build

Ctrl + Shift + B 是Run

scrn20150227211855

测试程序:

#include <stdio.h>
#include <gtk/gtk.h>

int main(void)
{
	gtk_init(NULL, NULL);
	GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_position(window, GTK_WIN_POS_CENTER_ALWAYS);
	gtk_window_set_title(window, "登陆");
	g_signal_connect(window, "destroy", gtk_main_quit, NULL);
	gtk_widget_show(window);

	GtkGrid *grid1 = gtk_grid_new();

	GtkLabel *label1 = gtk_label_new("用户名");
	gtk_grid_attach(grid1, label1, 0, 0, 1, 1);
	gtk_widget_show(label1);

	GtkLabel *label2 = gtk_label_new("密码");
	gtk_grid_attach(grid1, label2, 0, 1, 1, 1);
	gtk_widget_show(label2);

	GtkButton *btn1 = gtk_button_new();
	gtk_button_set_label(btn1, "登陆");
	gtk_grid_attach(grid1, btn1, 0, 2, 1, 1);
	gtk_widget_show(btn1);

	GtkButton *btn2 = gtk_button_new();
	gtk_button_set_label(btn2, "关闭");

	gtk_grid_attach(grid1, btn2, 2, 2, 1, 1);
	gtk_widget_show(btn2);

	GtkEntry *entry1 = gtk_entry_new();
	gtk_grid_attach(grid1, entry1, 1, 0, 3, 1);
	gtk_widget_show(entry1);

	GtkEntry *entry2 = gtk_entry_new();
	gtk_grid_attach(grid1, entry2, 1, 1, 3, 1);
	gtk_widget_show(entry2);


	gtk_widget_show(grid1);
	gtk_container_add(window, grid1);


	gtk_main();
	return 0;
}

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
https://www.yalewoo.com/sublime-text_gtk.html

上一篇:

下一篇:

我要评论

验证码*: 6 + 9 =