命令简记

cd $GOROOT/src

cp -r $GOROOT /root/go1.4

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash

操作记录

cd $GOROOT/src

root@ubuntu:/export/app/go/src# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
./make.bash: line 165: /root/go1.4/bin/go: No such file or directory
Building Go cmd/dist using /root/go1.4. ()
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
root@ubuntu:/export/app/go/src# cp -r /export/app/go/ /root/go1.4 root@ubuntu:/export/app/go/src# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
Building Go cmd/dist using /root/go1.4. (go1.15 linux/amd64)
Building Go toolchain1 using /root/go1.4.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for host, linux/amd64.
Building packages and commands for target, windows/amd64.
---
Installed Go for windows/amd64 in /export/app/go
Installed commands in /export/app/go/bin

测试

package main

import (
"io/ioutil"
) func main() {
content := "看到有很多动物在天上飞,作为一只兔子,我也为此努力了大半生..." //如果文件a.txt已经存在那么会忽略权限参数,清空文件内容。文件不存在会创建文件赋予权限
ioutil.WriteFile("./a.txt",[]byte(content),0777)
}

前面是用root用户设置的,编译时可以用普通用户

hongyun@ubuntu:/export/wks/go/dbm_go/src/test/fil$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build ioutil.go
hongyun@ubuntu:/export/wks/go/dbm_go/src/test/fil$ ll
total 1632
drwxrwxr-x 2 hongyun hongyun 4096 12月 3 14:33 ./
drwxr-xr-x 18 hongyun hongyun 4096 12月 3 14:19 ../
-rwxrwxr-x 1 hongyun hongyun 1656320 12月 3 14:33 ioutil.exe*
-rw-rw-r-- 1 hongyun hongyun 341 12月 3 14:29 ioutil.go

将程序放到windows上,执行后会在当前目录下生成一个文件

别名

alias win="CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build "

这样编译windows程序就方便多

hongyun@ubuntu:/export/wks/go/dbm_go/src/test/fil$ win ioutil.go
hongyun@ubuntu:/export/wks/go/dbm_go/src/test/fil$ ll
total 1632
drwxrwxr-x 2 hongyun hongyun 4096 12月 3 14:37 ./
drwxr-xr-x 18 hongyun hongyun 4096 12月 3 14:19 ../
-rwxrwxr-x 1 hongyun hongyun 1656320 12月 3 14:37 ioutil.exe*
-rw-rw-r-- 1 hongyun hongyun 341 12月 3 14:29 ioutil.go

ubantu上编辑windows程序的更多相关文章

  1. 在 XenServer上调试windows程序

    WinDbg WinDbg is one of a number of tools available from Microsoft that can be used for debugging Wi ...

  2. 在OSX和Windows版本Docker上运行GUI程序

    看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issue ...

  3. 如何实现在Windows上运行Linux程序,附示例代码

    微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己 ...

  4. 从Azure上构建Windows应用程序映像

    从Azure上构建windows应用程序映像同构建Linux应用程序映像总体流程比较类似,可以参考上图Linux映像的制作发布等流程,具体细节又有所差别. 具体步骤如下: 从Azure管理平台上申请W ...

  5. Windows系统上release版本程序bug跟踪解决方案-.dmp文件。

    使用场景: Win32程序在release模式下编译完成,发送给最终用户使用时,我们的程序有时候也会出现崩溃的情况,这个时候如果能快速定位崩溃原因或提供一些程序崩溃时的状态信息,对我们解决问题将会带来 ...

  6. Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)

    原文:Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 程序如何自己更新自己呢?你可能会想到启动一个新的程序或者脚本来更新自己.然而 Windows 操作系统允许一个应 ...

  7. Windows编程 Windows程序的生与死(上)

    引子 “Windows 程序分为‘程序代码’和‘UI(User Interface)资源’两大部份,两部份最后以RC编译器(资源编译器)整合为一个完整的EXE 文件.所谓UI 资源是指功能菜单.对话框 ...

  8. 在Mac OSX上运行Windows应用程序

    在Mac OSX中,借助wine,不需要安装虚拟机也可以运行Window应用程序. wine是一个在Linux和UNIX之上的,WIndows3.x和Windows APIs的实现.是运用API转换技 ...

  9. Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html

    一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...

随机推荐

  1. SSH 提示密码过期,如何通过 ansible 批量更新线上服务器密码

    起因 线上环境是在内网,登陆线上环境需要使用 VPN + 堡垒机 登陆,但是我日常登陆线上环境都是 VPN + 堡垒机 + Socks5常驻代理,在shell端只需要保存会话,会话使用socks5代理 ...

  2. Java实体映射工具MapStruct使用详解

    1.序 通常在后端开发中经常不直接返回实体Entity类,经过处理转换返回前端,前端提交过来的对象也需要经过转换Entity实体才做存储:通常使用的BeanUtils.copyProperties方法 ...

  3. SpringCloud 2020.0.4 系列之 JWT用户鉴权

    1. 概述 老话说的好:善待他人就是善待自己,虽然可能有所付出,但也能得到应有的收获. 言归正传,之前我们聊了 Gateway 组件,今天来聊一下如何使用 JWT 技术给用户授权,以及如果在 Gate ...

  4. Could not set property 'id' of 'class com.xxx.xxEntity'

    使用mybatisplus的save功能时,系统报错如下: Could not set property 'id' of 'class com.xxx.xxEntity' with value '13 ...

  5. silky微服务模块

    目录 模块的定义和类型 在模块中注册服务 通过ServiceCollection实现服务注册 通过ContainerBuilder实现服务注册 使用模块初始化任务 使用模块释放资源 模块的依赖关系 构 ...

  6. 后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合

    title: 后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合 date: 2020-06-28 sidebarDepth: 2 tags: win ...

  7. ES6基础知识(Promise 对象)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. UDP端口检查告警SHELL脚本(企业微信版机器人版)

    脚本准备 0Batch_Check.sh 1port_check.sh 2wechat_bot_alert.sh CheckList CheckList #支持大/小写 10.1.1.5 Udp 53 ...

  9. [源码解析] PyTorch 分布式(8) -------- DistributedDataParallel之论文篇

    [源码解析] PyTorch 分布式(8) -------- DistributedDataParallel之论文篇 目录 [源码解析] PyTorch 分布式(8) -------- Distrib ...

  10. [noi32]sort

    先解释一下checker.cpp,它的判定标准是2e7,即答案超过2e7就认为代价过大了. 首先,很容易想到的办法是直接对其快排,从外到内交换区间即可,然而这样会被邪恶的出题人给卡掉(当然其实随便一组 ...