美文网首页
依照官方文档在MSYS2中安装GTK

依照官方文档在MSYS2中安装GTK

作者: 祥龙翔天 | 来源:发表于2020-11-21 09:15 被阅读0次

    最近手痒痒,想干点事儿,于是就有了这篇文章,为后面用Rust语言写GTK程序做准备

    在MSYS2中安装GTK,那就说明使用的是Window系统

    我们进入Windows下配置GTK的官方网址

    这里将MSYS2安装过程截图一下


    官方教程

    现在我们关注Step1 Step2 以及 Step5Step3 Step4 现阶段用不上,等要用的时候,我相信那时的我已经能顺利搞定遇到的问题了

    安装MSYS2

    依照Step1的提示,,我们安装MSYS2

    中国科学技术大学开源软件镜像站中找到msys2

    ustc中的msys2

    点击进入到distrib目录下,由于我这Windows 64位的系统,故下载了msys2-x86_64-latest.exe

    msys2-x86_64-latest.exe下载

    接下来就是安装,和普通软件的安装一样,双击msys2-x86_64-latest.exe即可

    我这里是更改了安装目录,使其装在了D盘

    msys2安装界面

    安装完毕后,打开msys2的命令窗口,我们便可以进行下一步:安装gtk3

    安装gtk3

    依照Step2的提示,我们执行pacman -S mingw-w64-x86_64-gtk3

    msys2中安装mingw-w64-x86_64-gtk3 image.png

    直接回车安装

    msys2中安装mingw-w64-x86_64-gtk3

    没错,慢的一塌糊涂,这就需要使用国内的镜像站来加速了

    我们再次在中国科学技术大学开源软件镜像站中找到msys2的Help,

    MSYS2 Help

    点击进入 MSYS2 源使用帮助

    MSYS2 源使用帮助

    意思就是让我在下面的三个配置文件中

    image.png

    都使用ustc的源,以mirrorlist.mingw64为例,用记事本打开mirrorlist.mingw64查看一下内容

    ##
    ## 64-bit Mingw-w64 repository mirrorlist
    ##
    
    ## Primary
    ## msys2.org
    Server = http://repo.msys2.org/mingw/x86_64/
    Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
    Server = https://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
    Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
    Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64/
    Server = https://mirror.selfnet.de/msys2/mingw/x86_64/
    

    发现给我列出了好几个Server,其中就包含了ustc的源,我们将ustc的源(Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/)移动到最前面

    剩下两个配置文件做相同的操作

    然后执行 pacman -Sy

    接着我们来执行之前的命令pacman -S mingw-w64-x86_64-gtk3

    起飞

    没错,一下就起飞了,遇到下面的结果,就说明安装完成了

    mingw-w64-x86_64-gtk3安装完成

    依照Step5的提示,我们执行pacman -S mingw-w64-x86_64-toolchain base-devel命令

    mingw-w64-x86_64-toolchain base-devel安装

    后续的所有步骤都直接回车(即默认全部选定)

    如果安装过程中出现如下的错误

    发生错误

    建议再次执行pacman -S mingw-w64-x86_64-toolchain base-devel命令

    再次执行

    如果错误依旧,那么请先执行pacman -Sy命令后再执行pacman -S mingw-w64-x86_64-toolchain base-devel命令

    pacman -Sy命令

    可以看到下载大小有了变化,我们回车默认安装

    一般会成功,如果还不成功,则重复上面的动作,如果这都还不成功,I have no idea,自己再搜搜解决办法,下图展示了安装成功的情况

    安装成功

    编译GTK程序

    我们进入Hellow World页面

    点击进入Hellow World页面

    依照提示,在当前目录创建hello-world-gtk.c文件

    #include <gtk/gtk.h>
    
    static void
    print_hello (GtkWidget *widget,
                 gpointer   data)
    {
      g_print ("Hello World\n");
    }
    
    static void
    activate (GtkApplication *app,
              gpointer        user_data)
    {
      GtkWidget *window;
      GtkWidget *button;
      GtkWidget *button_box;
    
      window = gtk_application_window_new (app);
      gtk_window_set_title (GTK_WINDOW (window), "Window");
      gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
    
      button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
      gtk_container_add (GTK_CONTAINER (window), button_box);
    
      button = gtk_button_new_with_label ("Hello World");
      g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
      g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_close), window);
      gtk_container_add (GTK_CONTAINER (button_box), button);
    
      gtk_widget_show_all (window);
    }
    
    int
    main (int    argc,
          char **argv)
    {
      GtkApplication *app;
      int status;
    
      app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
      g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
      status = g_application_run (G_APPLICATION (app), argc, argv);
      g_object_unref (app);
    
      return status;
    }
    

    然后执行命令

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

    编译hello-world-gtk.c

    这里提示bash: gcc: 未找到命令,但是我们之前在选择的时候是默认全部安装,并且里面有gcc的安装

    gcc安装证据

    我们查找一下gcc的路径


    gcc安装路径查找

    即gcc安装在了 /mingw64/bin/ 目录下

    再查看一下PATH环境变量的值

    查看PATH环境变量的值

    竟然!!!gcc的路径并没有在PATH环境变量中,那我们手动添加一下

    执行

    export PATH="/mingw64/bin:$PATH"

    命令后再执行命令

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

    就会正常产出可执行文件hello-world-gtk.exe

    产出可执行文件`hello-world-gtk.exe

    当然,此时双击运行是不会成功的

    运行失败

    我们知道,官方的gtk3-demo.exe是能运行成功的,我们先找到它

    查找gtk3-demo.exe

    我们可以将hello-world-gtk.exe拷贝到与gtk3-demo.exe相同的目录(/mingw64/bin)下后双击运行便成功了

    hello-world-gtk.exe运行陈工

    当然,更为便捷的是将gtk3-demo.exe所在的目录添加到系统的PATH环境变量中,这样就不用每次都拷贝到/mingw64/bin目录下去运行

    相关文章

      网友评论

          本文标题:依照官方文档在MSYS2中安装GTK

          本文链接:https://www.haomeiwen.com/subject/cxnjiktx.html