Windows使用DevCpp开发GTK环境的搭建

⌚Time: 2022-06-19 19:59:03

👨‍💻Author: Jack Ge

下载

DevC++下载地址:https://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/

如果你的系统没有安装Mingw-gcc编译器,那就下载带有TDM-GCC的安装版,自带gcc编译器,No Compiler的版本是不带gcc编译器的版本

gtk+2.0的下载地址

下载地址:http://ftp.acc.umu.se/pub/GNOME/binaries/win32/gtk+/

gtk的配置

将下载后的gtk+-bundle-2.12.11-20080720.zip解压,将其中的bin目录加入windows环境变量path目录中

打开cmd,使用gtk+-bundle-2.12.11-20080720自带的pkg-config工具确定gcc的编译参数


pkg-config --cflags gtk+-2.0

pkg-config --libs gtk+-2.0

得到了以下输出


-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

说明配置成功

devc++的配置

安装下载完成的Devc++。打开,进行配置

我系统里面有mingw编译器,因此下载的就是不带编译器的版本,需要对编译器进行配置

下载带编译器的版本可以掠过

点击工具,编译选项,点击第绿色加号,输入一个编译器配置名字

之后点击目录,分别对二进制、库、c++包含文件的目录进行配置

mingw的bin目录

lib库目录

c++包含文件目录

最后配置程序名字,一般就对应前面的名字,但是make的名字是mingw32-make

勾选编译时加入以下命令,输入-std=c++11,开启c++11语法支持。

勾选在链接器命令行加入以下命令,输入-static 。作用就是执行静态链接

测试编译器配置,新建一个文件,输入以下代码


#include<stdio.h>

int main()

{

    printf("hello world!");

    return 0;

    

 } 

点击工具栏编译运行按钮,得到以下输出说明编译器配置正确

devc开发gtk环境的配置

点击工具,编译选项,目录,c++包含文件,将之前配置gtk时pkgconfig输出的头文件目录全部的添加进去(-I开头的编译参数)

点击库,将pkgconfig输出的库目录添加进去(-L开头的编译参数)

点击编译器,将pkgconfig输出的链接的库加入链接器命令行

点击确定

新建一个程序,输入以下代码


#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 world");

    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;

}


点击工具栏的编译运行,程序运行成功。


编译项目变更...

--------

- 项目文件名: C:\Users\jack\Documents\Devc\项目1.dev

- 编译器名: New compiler



生成 makefile...

--------

- 文件名: C:\Users\jack\Documents\Devc\Makefile.win



正在处理makefile...

--------

- makefile处理器: D:\BuildChanTools\i686-5.2.0-release-win32-sjlj-rt_v4-rev1\mingw32\bin\mingw32-make

- 命令: mingw32-make -f "C:\Users\jack\Documents\Devc\Makefile.win" all



g++ -D__DEBUG__ -c main.cpp -o main.o -I"D:/BuildChanTools/i686-5.2.0-release-win32-sjlj-rt_v4-rev1/mingw32/include" -I"D:/BuildChanTools/i686-5.2.0-release-win32-sjlj-rt_v4-rev1/mingw32/i686-w64-mingw32/include" -I"D:/libs/gtk+-bundle-2.12.11-20080720/include/gtk-2.0" -I"D:/libs/gtk+-bundle-2.12.11-20080720/lib/gtk-2.0/include" -I"D:/libs/gtk+-bundle-2.12.11-20080720/include/atk-1.0" -I"D:/libs/gtk+-bundle-2.12.11-20080720/include/cairo" -I"D:/libs/gtk+-bundle-2.12.11-20080720/include/pango-1.0" -I"D:/libs/gtk+-bundle-2.12.11-20080720/include/glib-2.0" -I"D:/libs/gtk+-bundle-2.12.11-20080720/lib/glib-2.0/include" -I"D:/libs/gtk+-bundle-2.12.11-20080720/include/libpng12" -g3 -std=c++11 -Wall -mms-bitfields



g++ -D__DEBUG__ main.o -o 项目1.exe -L"D:/BuildChanTools/i686-5.2.0-release-win32-sjlj-rt_v4-rev1/mingw32/lib" -L"D:/BuildChanTools/i686-5.2.0-release-win32-sjlj-rt_v4-rev1/mingw32/i686-w64-mingw32/lib" -L"D:/libs/gtk+-bundle-2.12.11-20080720/lib" -static -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 -g3





编译结果...

--------

- 错误: 0

- 警告: 0

- 输出文件名: C:\Users\jack\Documents\Devc\项目1.exe

- 输出大小: 309.021484375 KiB

- 编译时间: 0.53s



可以看到gtk运行时伴随命令行窗口,通过编译时的-mwindows参数可以取消这个命令窗口。将-mwindows参数追加到编译器选项的,编译时命令中

其它的DevC++配置:

以上只是对于全局的编译器配置,如果你想对项目进行单独的编译器配置,需要点击项目,项目属性,指定新的编译链接参数与附加目录,这些项目配置会作为单独的编译器配置而被使用

点击工具,编辑器属性,基本,可以设置高亮显示当前行的颜色

点击语法,自定义编辑器代码颜色

代码补全

工具,编辑器属性

点击代码补全勾选允许代码补全,勾选代码补全功能实验中,就可以开启代码补全功能

点击工具,快捷键选项,将Show Code Completion的快捷键设置为ctrl+enter,因为原有的ctrl+space与windows的中英文切换相冲突,无法使用代码补全功能

之后在编辑代码时,按ctrl+enter,就可以弹出代码提示

注意事项

下载地址:https://sourceforge.net/projects/gtk-win/files/