1. 配置软件源

  • 本地源:
baseurl=file:///media/cdrom/BaseOS
baseurl=file:///media/cdrom/AppStream
  • PowerTools 源:
baseurl=http://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os
  • epel 源:
baseurl=http://mirrors.aliyun.com/epel/8/Everything/$basearch
  • puias 源(包含mingw64-gtk3等dll库):
baseurl=http://46.17.45.37/puias/8.1/x86_64/os/AppStream/Packages

2. 安装编译工具

yum install -y mingw64-gcc
yum install -y mingw64-gcc-c++
yum install -y mingw64-glib2
yum install -y mingw64-gtk3 (版本号:3.22.30)

修改链接参数,否则会报错,执行

sed -i  's/-Wl,-luuid/-luuid/g' /usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/gdk-3.0.pc

3. x86_64-w64-mingw32编译安装gotk3

PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig \
CGO_ENABLED=1 \
CC=x86_64-w64-mingw32-gcc \
GOOS=windows \
GOARCH=amd64 \
go install github.com/gotk3/gotk3/gtk

4. 编译代码

// main.c
package mainimport ("github.com/gotk3/gotk3/glib""github.com/gotk3/gotk3/gtk""os"
)func main() {const appId = "com.nayoso.example"app, _ := gtk.ApplicationNew(appId, glib.APPLICATION_FLAGS_NONE)app.Connect("activate", func() {onActivate(app)})app.Run(os.Args)
}func onActivate(application *gtk.Application) {appWindow, _ := gtk.ApplicationWindowNew(application)appWindow.SetTitle("Grid example")grid, _ := gtk.GridNew() //创建容器appWindow.Add(grid)      //将容器添加到window中//创建一些按钮来展示grid的效果button1, _ := gtk.ButtonNewWithLabel("Button 1")button2, _ := gtk.ButtonNewWithLabel("Button 2")button3, _ := gtk.ButtonNewWithLabel("Button 3")//将buttons添加到grid中grid.Attach(button1, 0, 0, 1, 1) //参数:左,上,宽,高grid.Attach(button2, 1, 0, 1, 1)grid.Attach(button3, 0, 1, 2, 1)appWindow.ShowAll()
}

编译:

# If you do need a CMD window with your app's GUI (e.g. for easier user-side debugging),
# remove the -ldflags -H=windowsgui option.
PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig \
CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc GOOS=windows GOARCH=amd64 \
go build -ldflags -H=windowsgui

5. windows安装gtk运行时环境:gtk3-runtime_3.22(最接近3.22.30的版本)

https://master.dl.sourceforge.net/project/gtkd-packages/gtk3-runtime/gtk3-runtime_3.22.4_64-bit.exe

将上一步生成的main.exe拷贝到Windows ,双击即可看到下面的界面

PS: centos8搭建nsis交叉编译环境,参见另一篇文章:https://blog.csdn.net/hbuxiaofei/article/details/105995059

centos8下搭建gotk3(go语言gtk库) x86_64-w64-mingw32交叉编译环境相关推荐

  1. centos8下搭建zabbix6.0监控系统

    centos8下搭建zabbix监控 1.基础准备 2.搭建zabbix监控(server端) 一.安装软件包 二.mariadb配置 三.zabbix-server配置 四.浏览器访问web页面 3 ...

  2. linux 运行lua脚本语言,你知道在linux下搭建lua脚本语言的编程环境?

    描述 lua是脚本语言的一种,具体的该脚本的介绍可百度,本文介绍Linux系统下搭建lua编程环境的步骤,以及在搭建过程中碰到的种种问题. 一.下载获取lua源码 地址http://www.lua.o ...

  3. centos7下搭建git和gitlab版本库

    系统:centos7 安装依赖: yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-d ...

  4. kali系统搭建本地服务器,kali linux 下搭建git服务器

    参考:http://www.cnblogs.com/dee0912/p/5815267.html https://www.liaoxuefeng.com/wiki/001373951630592960 ...

  5. C++多国语言插件库(适用QT/MFC)

    简述: 此 库基于VS2015++ win10sdk 开发封装,用于QT/MFC平台下的多国语言切换库, 需结合poedit进行编辑语言资源,使用起来极为简单,支持中文简繁体: typedef enu ...

  6. Lisp语言: 在Windows下搭建CLisp环境

    有关Clisp环境的搭建,有人反映说在Ubuntu上搭建很麻烦,对于习惯使用Windows环境的同学们来讲不方便,所以在这里添加一篇Windows下搭建CLisp环境的文章. 其实在Windows下搭 ...

  7. Eclipse下搭建C语言开发环境

    Eclipse下搭建C语言开发环境 要使用Eclipse开发C/C++语言主要有 下面几个步骤: 1. 安装 JRE 去sun官方网站 下载安装即可 由于 Eclipse 本身是用 Java 开发的, ...

  8. Windows系统下搭建Git本地代码库

    近由于工作需要,要把工作代码做一下版本管理.工作代码也不方便放到github上,也不想付费建私密库,公司也没几个人,所以就想着搭建一个本地Git版本库,来做版本管理.搭建过程如下. 系统环境:Dell ...

  9. windows 本地搭建git仓库_Windows系统下搭建Git本地代码库

    近由于工作需要,要把工作代码做一下版本管理.工作代码也不方便放到github上,也不想付费建私密库,公司也没几个人,所以就想着搭建一个本地Git版本库,来做版本管理.搭建过程如下. 系统环境:Dell ...

最新文章

  1. 以SIGSEGV为例详解信号处理(与栈回溯)
  2. 大白话 + 13 张图解 Kafka
  3. 什么叫「人的格局」?是否有必要培养大的格局或怎么培养?
  4. 全国计算机等级考试题库二级C操作题100套(第64套)
  5. 一道C#类型转换的思考题
  6. Nginx-1.18.0主函数main思维导图(第一版)
  7. 深度学习笔记——生成模型
  8. Android自定义view之ViewPager指示器——2
  9. 网络_检测公网端口是否开启
  10. 《深入理解计算机系统(修订版)》读感
  11. java我的世界显示合成表_我的世界:若从你的背包移除“合成表”,回到5年前,最原始状态...
  12. 软件设计师历年真题及答案2009-2017
  13. python实现bt下载器_10行 Python代码使用磁力链接批量下载种子
  14. IEEE会议论文批量下载的方法
  15. 克隆加密狗和原加密狗_遥控钥匙和加密狗有什么区别?
  16. 中层管理者如何做好员工管理
  17. react18中使用react-hook-form
  18. python的endswith()的用法及实例
  19. 微信小程序登录+坐标定位显示km数
  20. 重置Windows打印机COM端口USB端口

热门文章

  1. windows签名证书流程
  2. ThingJS平台制作第一人称视角下的巡更效果
  3. Java 轻量级锁原理详解(Lightweight Locking)
  4. 能用10块大洋去解决的事,千万不要用时间
  5. TCP/IP具体解释学习笔记——地址解析协议ARP
  6. linux 下创建GRE隧道
  7. Java重写方法与初始化的隐患(转)
  8. 完整数据报文的格式分析(TCP)
  9. webpack入门学习手记(一) 1
  10. 一键自动化部署web架构