windows使用codeblock编译gtk程序

⌚Time: 2023-01-29 19:04:51

👨‍💻Author: Jack Ge

首先安装配置好codeblock,并且可以正常编译c/c++程序

官网:https://www.codeblocks.org/

下载gtk开发库:

https://download.gnome.org/binaries/win64/gtk%2B/

https://download.gnome.org/binaries/win32/gtk%2B/

1.解压gtk开发库,我将gtk解压安装在D:\libs路径下

2.将gtk库目录下的bin目录加入到系统环境变量path中去。gtk程序运行时需要其bin目录下动态库的支撑。

3.打开cmd,输入以下命令查看gtk的编译链接参数,根据安装的是gtk2.0或者gtk3.0输入不同的命令


pkg-config gtk+-2.0 --cflags --libs

pkg-config gtk+-3.0 --cflags --libs

输出的参数


-mms-bitfields -ID:/libs/gtk+-bundle-2.12.11-20080720/include/gtk-2.0 -ID:/libs/gtk+-bundle-2.12.11-20080720/lib/gtk-2.0/include -ID:/libs/gtk+-bundle-2.12.11-20080720/include/atk-1.0 -ID:/libs/gtk+-bundle-2.12.11-20080720/include/cairo -ID:/libs/gtk+-bundle-2.12.11-20080720/include/pango-1.0 -ID:/libs/gtk+-bundle-2.12.11-20080720/include/glib-2.0 -ID:/libs/gtk+-bundle-2.12.11-20080720/lib/glib-2.0/include -ID:/libs/gtk+-bundle-2.12.11-20080720/include/libpng12  -LD:/libs/gtk+-bundle-2.12.11-20080720/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl

4.打开codeblock,settings,compiler,global compiler settings,search directories,compiler,设置附加头文件搜索目录


D:/libs/gtk+-bundle-2.12.11-20080720/include/gtk-2.0

D:/libs/gtk+-bundle-2.12.11-20080720/lib/gtk-2.0/include

D:/libs/gtk+-bundle-2.12.11-20080720/include/atk-1.0

D:/libs/gtk+-bundle-2.12.11-20080720/include/cairo

D:/libs/gtk+-bundle-2.12.11-20080720/include/pango-1.0

D:/libs/gtk+-bundle-2.12.11-20080720/include/glib-2.0

D:/libs/gtk+-bundle-2.12.11-20080720/lib/glib-2.0/include

D:/libs/gtk+-bundle-2.12.11-20080720/include/libpng12

  1. search directories,linker,设置附加库搜索目录

D:/libs/gtk+-bundle-2.12.11-20080720/lib

  1. compiler settings,other options,编译器设置编译时参数,加入

-mms-bitfields -std=c++11

使用Microsoft的方式进行对齐操作和启用对c++11的支持

  1. Linker settings ,链接器设置,加入链接所需的gtk库,你可以通过add一个一个的将链接库加入link libraries,但是不如直接加链接参数指定链接库方便

-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -lpthread

8.测试程序


#include<gtk/gtk.h>

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 window");

    gtk_window_set_default_size(GTK_WINDOW(window),300,200);

    label=gtk_label_new("hello world!");

    gtk_container_add(GTK_CONTAINER(window),label);

    g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);

    gtk_widget_show_all(window);



    gtk_main();



return 0;

}


编译运行,出现hello窗口说明配置成功


由于codeblock自身支持gtk项目,因此可以不必像之前麻烦的配置编译链接参数。

直接打开codeblock

file,new,project,直接选择GTK+ project

之后配置项目名称和所在位置

接下来选择gtk开发环境的安装位置

编译器和输出设置

直接就可以创建出gtk项目了。系统自动生成默认gtk代码,编译运行没有任何问题