Goland 编写项目完成,开发环境运行正确
比如如下工程:

项目中引用了Go开源Gui: github.com/andlabs/ui

package mainimport ("github.com/andlabs/ui"_ "github.com/andlabs/ui/winmanifest"
)func main() {err := ui.Main(func() {// 生成:文本框name := ui.NewEntry()// 生成:标签greeting := ui.NewLabel(``)// 生成:按钮button := ui.NewButton(`输入完成文件夹名称请点击此处`)// 设置:按钮点击事件button.OnClicked(func(*ui.Button) {greeting.SetText(`输入文件夹:[` + name.Text() + `]`)ToExcel_CSV(name.Text())greeting.SetText(greeting.Text() + "\n生成数据完成.")greeting.SetText(greeting.Text() + "\n请检查该文件夹下文件名开头为 Txxm5812_ 的Excel文件.")})// 生成:垂直容器box := ui.NewVerticalBox()// 控件间生成间隔box.SetPadded(true)// 往 垂直容器 中添加 控件box.Append(ui.NewLabel(`请输入文件夹的名字【请检查文件夹名称的正确性】`), false)box.Append(name, false)box.Append(button, false)box.Append(greeting, false)// 生成:窗口(标题,宽度,高度,是否有 菜单 控件)window := ui.NewWindow(`文件夹目录生成Excel for Go 2020-04-18`, 600, 300, true)window.SetMargined(true)// 窗口容器绑定window.SetChild(box)// 设置:窗口关闭时window.OnClosing(func(*ui.Window) bool {// 窗体关闭ui.Quit()return true})// 窗体显示window.Show()})if err != nil {panic(err)}
}

环境运行结果:

但是这是在MacOS下编译的,也可以使用命令行进行编译

可是这个小工具如果要在windows下运行,如何生成windows下的exe可执行文件呢?
通过网上检索资料知道,可以使用如下命令

lizhongsu@lizhongdeMacBook-Pro studygo % CGO_ENABLED=1 GOOS=windows GOARCH=amd64  go build
# runtime/cgo
gcc_libinit_windows.c:7:10: fatal error: 'windows.h' file not found
lizhongsu@lizhongdeMacBook-Pro studygo % 

但是产生了错误
于是查找资料的工作开始了,检索到需要安装mingw-w64

什么是mingw-w64

MinGW-w64简介
MinGW存在的问题:

MinGW只能编译为Win32程序,不能编译为Win64程序。
MinGW更新速度及其慢,不能很好的支持较新的Windows API。
为了解决这些问题,一些人fork了MinGW, 新项目被命名为MinGW-w64。

MinGW-w64不仅能编译为Win64程序,也能编译为Win32程序。

MinGW-w64同样是跨平台软件,可以运行在Windows、GNU/Linux、macOS中。

MinGW-w64官网:http://mingw-w64.org

MacOS下安装mingw-w64

brew install mingw-w64

可是直接使用这个命令安装,太慢了,慢的无法承受,本人整整安装了一下午,也没有成功。
后来查找网上说换源可以解决速度慢的问题,于是换源

阿里云

# 替换brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
# 替换homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
# 刷新源
brew update

清华源

# 替换brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
# 替换homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
# 刷新源
brew update

中科大源

# 替换brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 替换homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 刷新源
brew update

更换方法,直接在终端执行就行了。

homebrew的基本使用

1、安装软件命令

python3为安装软件的名称

brew install python3

2、搜索软件命令

python3为需要搜索的软件名称

brew search python3

3、查看软件信息
已安装的、未安装的软件都可以查看。

python3为需要查看的软件名称

brew info python3

查看软件python3

查看软件wget

4、卸载软件
卸载通过brew安装的软件

wget为需要卸载的软件名称

brew uninstall wget

安装完成mingw-w64

再次尝试编译Go项目
使用命令

CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 go build -x -v -ldflags "-s -w"

编译结果

lizhongsu@lizhongdeMacBook-Pro studygo % CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 go build -x -v -ldflags "-s -w"
WORK=/var/folders/xm/jdps35rs4h38kvtl10sl9q840000gn/T/go-build658172393
mkdir -p $WORK/b001/
cat >$WORK/b001/importcfg.link << 'EOF' # internal
packagefile studygo=/Users/lizhongsu/Library/Caches/go-build/00/00ac2a764f93fcf6878f1b1b7e075fd6cc5fd08a67edc180fa858122a18a42a9-d
packagefile encoding/csv=/Users/lizhongsu/Library/Caches/go-build/73/738fe06f162f422f868f01fa56c1834390daf38596757cbd1a4244631ad9967f-d
packagefile fmt=/Users/lizhongsu/Library/Caches/go-build/13/131f327e5a6edc74345a0f850446e740373e2828135e224b06b196e012a9f617-d
packagefile github.com/andlabs/ui=/Users/lizhongsu/Library/Caches/go-build/ff/ffc9199430498d6375e6c429b365ecde8e759e962df8123bf1b2ede2f0fcca9a-d
packagefile github.com/andlabs/ui/winmanifest=/Users/lizhongsu/Library/Caches/go-build/71/7189a8581db4175640b034a62b159e81fb8f5ed47da1b0d1b3fb5eee6501e523-d
packagefile internal/race=/Users/lizhongsu/Library/Caches/go-build/34/3428f198b873770e7f31b88d6a16b66a73226501ac91b0569adfe9b6c2ac0bce-d
packagefile image/color=/Users/lizhongsu/Library/Caches/go-build/46/46adb9b85fcedcbdff29362f13febd9762ce291d8db978b130b0f01a6239edfd-d
packagefile internal/syscall/windows/sysdll=/Users/lizhongsu/Library/Caches/go-build/fc/fc3a81c4945173524050854b5c699ee2c254d43e6850e0a6c898616022805ef2-d
EOF
mkdir -p $WORK/b001/exe/
cd .
/usr/local/go/pkg/tool/darwin_amd64/link -o $WORK/b001/exe/a.out.exe -importcfg $WORK/b001/importcfg.link -buildmode=exe -buildid=FKuCRU2bJwAmhCz6QJQ_/UAthG7sM5y9aeKY--9x6/uMPk9jSAwH5OnXs5D1Xy/FKuCRU2bJwAmhCz6QJQ_ -s -w -extld=x86_64-w64-mingw32-g++ /Users/lizhongsu/Library/Caches/go-build/00/00ac2a764f93fcf6878f1b1b7e075fd6cc5fd08a67edc180fa858122a18a42a9-d
/usr/local/go/pkg/tool/darwin_amd64/buildid -w $WORK/b001/exe/a.out.exe # internal
mv $WORK/b001/exe/a.out.exe studygo.exe
rm -r $WORK/b001/
lizhongsu@lizhongdeMacBook-Pro studygo %

生成了studygo.exe 文件
验证一下该文件

lizhongsu@lizhongdeMacBook-Pro studygo % file studygo.exe
studygo.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
lizhongsu@lizhongdeMacBook-Pro studygo % 

编译成功!

在macOS下启用CGO_ENABLED的交叉编译Go语言项目生成Windows EXE文件相关推荐

  1. VS2015生成的exe文件在其他电脑下运行

    小白记录贴~轻拍~ 环境:win10 64位+VS2015+OpenCV 自己VS2015工程中生成的exe文件,运行时是在Debug  x64模式下.拷贝到其他没有安装VS2015或VS版本不同的电 ...

  2. eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法

    eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法 我的eclipse原来是好好的,什么问题都没有的,结果今天一打开新建一个android程序,发现工程里不会自动生成 ...

  3. linux wifi-tools,Linux下WiFi工具wireless_tools交叉编译,及其支持生成iwconfig使用的内核配置...

    内核的配置: General setup  ---> Kernel compression mode (LZMA)  --->LZMA [*] Networking support  -- ...

  4. vs2010调试c语言找不到exe文件夹,VS2010,在bin下面的debug文件中没有exe文件,只有dll文件和pdb文件。...

    你是链接的时候出错的,在菜单栏-项目-属性-配置属性-清单工具-输入输出-嵌入清单里面修改一下就好了. s2012运行c语言出现:无法查找或打开 PDB 文件. "ConsoleApplic ...

  5. macOS下使用命令行制作 MacOS cdr/iso 镜像文件

    步骤如下图: 二.制作 MacOS cdr/iso 镜像文件 从应用商店下载最新版本的macOS,完成后不要安装,之后打开终端操作即可 创建空的 dmg 镜像文件 # 创建一个大小为6G的dmg文件, ...

  6. cygwin中写c语言程序,在windows下怎么利用Cygwin进行编程

    Windows下使用C语言+嵌入SQL实现DB2开发 Cygwin,gcc的介绍和安装在前面的文章有将过,请参考 在Windows中使用Cygwin环境下的gcc编译器编译Informix ESQ/C ...

  7. 在tomcat下部署两个或多个项目时 log4j和web.xml配置webAppRootKey 的问题(转)

    在tomcat下部署两个或多个项目时 web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为"webapp.root",如下: <!-- 应用路径 ...

  8. Pycharm下将py文件打包成exe文件

    1. 在PyCharm下安装PyInstaller 1. 首先,打开自己要发布的工程   2. 点击底部的[Terminal]打开终端,中输入命令pip install pyinstaller后回车, ...

  9. 改造独立部署(SCD)模式下.NET Core应用程序 dotnet的exe文件启动过程

    设置一个小目标 改造前 改造后 独立部署SCD模式,是指在使用dotnet publish 命令时带上-r 参数运行时标识符(RID). 目标提出原因:SCD模式下文件太乱了,很多文件在开发时大多又涉 ...

最新文章

  1. CountVectorizer 统计文本重复率 sklearn API
  2. 网管网络布线之常用兵器谱
  3. 与客家土楼的约会(增城-河源)
  4. asp.net 页面之间跳转的几种方法及区别(转)
  5. Asp将查询结果导出到excel里
  6. 十年 IT 老兵带你通过案例学架构,附C#代码
  7. java绘制流程图_如何才能更好地绘制计算机毕业设计中各种图表
  8. c++如何打印一维数组首地址_4.1 数组的定义
  9. 416. 分割等和子集(JavaScript)
  10. 贝叶斯估计原理及流程
  11. php检查是否支持openssl,swoole环境是否支持openssl
  12. Qt编程入门(1) : 信号和槽
  13. script 标签中引用asp文件不显示的原因
  14. Java集合高频面试题(最新版)
  15. SQL2005安装及连接
  16. python 普通克里金(Kriging)法
  17. Installation for COMSOl(安装COMSOL)
  18. Python3之正则表达式详解!
  19. 使用 Love2D 开发游戏
  20. python 去掉字符串头尾及内部指定字符

热门文章

  1. 英语语法快速入门5--状语和状语从句(附思维导图)
  2. 我男的,做电话销售,月入6000+,今年25了,感觉做不了几年,要不要转行软件测试,或者换其他工作?
  3. 【Window10】自定义菜单——显示桌面
  4. java namevaluepair_java-如何将NameValuePair中的URL参数添加到HttpPost请求中
  5. 莫名惊诧:中国客户被FUCK
  6. Android项目模拟器提示:Unfortunately,XXX has stopped?
  7. Datawhale零基础入门NLP day5/Task5基于深度学习的文本分类2
  8. 实时系统vxWorks - zynq7020移植vxWorks
  9. Android基础知识梳理
  10. 数学建模预备知识——整数规划