Golang 编译windows应用程序

news/2024/11/14 7:51:45/文章来源:https://www.cnblogs.com/jiftle/p/18542430

因为我们更喜欢在Linux上开发程序, 所以生成交叉编译器,以便在Linux上交叉编译出windows程序。

安装minGW:在Linux上运行gcc交叉编译生成windows程序

我们用到Cgo,因此需要安装 C 语言交叉编译器

sudo apt-get install gcc-mingw-w64

下载Go语言的源代码

git clone https://github.com/golang/go.git

32-bit go-compiler for windows

GOOS=windows GOARCH=386 CGO_ENABLED=1 CXX_FOR_TARGET=i686-w64-mingw32-g++ CC_FOR_TARGET=i686-w64-mingw32-gcc ./make.bash

64-bit 编译器

GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CXX_FOR_TARGET=x86_64-w64-mingw32-g++ CC_FOR_TARGET=x86_64-w64-mingw32-gcc ./make.bash

非交叉编译,生成Linux程序

GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CXX_FOR_TARGET=g++ CC_FOR_TARGET=gcc ./make.bash

生成Go编译器之后,以下命令执行交叉编译,生成windows程序

GOOS=windows GOARCH=386 go build

Cgo

最终的目标是要生成windows程序,所以Cgo引用的库文件也必须是windows版本的。 以ffmpeg库为例:参考截图,在ffmpeg文件夹之下,新建一个文件夹,名为libwin, 用于保存windows版本的库文件(dll文件)。

pkgconfig 也需要做相应调整。而头文件无需变动。

准备工作只有这么多了。通过指定pkgconfig的路径,就能够交叉编译Cgo程序了。 GOOS=windows GOARCH=386 PKG_CONFIG_PATH=/foo/bar go build

2015-04-21 作者 Sleepy Programmer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/832403.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

The platform metadata area could not be written: /Volumes/MemoryAnalyzer1/MemoryAnalyzer.app/Content

mac安装MAT报错:The platform metadata area could not be written: /Volumes/MemoryAnalyzer1/MemoryAnalyzer.app/Content 。。。。。解决:创建文件夹 /Users/mzj/storage/data/mat/data

Centos7安装部署Nagios

简介 Nagios 是一款自动化运维工具,可以协助运维人员监控服务器的运行状况,并且拥有报警功能。 1、Nagios 核心及插件将安装在/usr/local/nagios 2、Nagios 核心会配置好监控当前服务器的一些基本信息 仅供参考,记录一下centOS7下nagios配置步骤,完整的步骤以及原理请参照原…

全媒体数字化转型,业务和技术双管齐下

不少传媒企业已经开始积极探索转型之路。通过打造个性IP工作室、重视C端用户服务、深化G端合作等方式,传媒行业正在逐步构建起一个以用户为中心、以数据为驱动、以创新为核心的新型媒体生态。2024年,是我国全功能接入国际互联网30周年。 在这个特殊的年份,中国的传媒行业也同…

南谷的往事与未来

纯属娱乐 本人南海实验中学 制作人员信息队自娱自乐在Tail Nightly建了个南谷一位作文大蛇就写下了一篇小说(在更新) 喜剧小说,神话小说 对事不对人,内容纯属虚构,切勿对号入座 南谷的往事与未来 洛谷网址 喜剧小说,神话小说 对事不对人,内容纯属虚构,切勿对号入座 作者…

前端构建工具对比

工具特性解析 1. Webpack输入输出灵活:支持单文件和多文件输入输出,可以进行复杂的模块化输出,并且支持全目录结构。 文件捆绑和格式支持:具有强大的捆绑功能,并支持 ESM、CJS、UMD 等模块格式输出。 CSS 和资源处理:具备强大的 CSS 预编译和资源处理能力,并支持插件扩展…

静态测试解决方案

经纬恒润拥有十几年的嵌入式软件开发及测试经验及经验丰富的软件测试团队,能够借助测试工具及设备给客户提供优质的静态测试服务。 随着自动驾驶、车联网等技术突飞猛进的发展,汽车中包含的软件越来越多。如何保证这些软件的质量成了重中之重。经纬恒润拥有十几年的嵌入…

前端技术对html的内联元素的学习

内联元素目录内联元素字体元素斜体字粗体字 字体元素 斜体字 同样,<em>和<i>标签默认情况下均以斜体显示标签中的文本,但是<em>标签具有强调的语义,用来表示标签中的内容很重要,而<i>标签仅仅用于定义斜体文本。 示例代码如下: <!DOCTYPE html…

Blender 常用材质节点

渲染模型 PBR全称:Physically Based Rendering (基于物理的渲染)BRDF全称:Bidirectional Reflectance Distribution Function (双向散射分布函数)BSDF包含BRDF(反射)和BTDF(透射)功能区介绍 伪用户 如果材质没有任何模型引用,关掉blender时,该材质会被自动删除,要想不…

Linux搭建FTP服务器配置

一、概念 1.1介绍 FTP:File transfer protocol 文件传输协议 端口 TCP21:命令 TCP20:数据 1.2原理 默认采用被动模式 被动模式FTP 为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动…

基于RBAC做数据权限

在RBAC模型下,系统只会验证用户A是否属于角色RoleX,而不会判断用户A是否能访问只属于用户B的数据DataB。这种问题我们称之为“水平权限管理问题”。 数据权限 数据规则 比如我们系统的商机数据,需要从下面几个维度来控制数据访问权限。 销售人员只能看自己的数据; 各大区的…

Free5GC源码研究(9) - PCF研究(下)

前文再续书接上一回,继续研究Free5GC中所实现的PCF的另外两组服务:SMPolicy和PolicyAuthorizationSMPolicy PCF中与SMF的交互,对session的控制有着很重的的分量,甚至连TS23.503中对与Policy Control的定义都是指PCF指示SMF去控制QoS流的过程。Policy control: The process …

遥感大数据智能分析与应用

在数字化和信息化时代,遥感技术已经成为获取地球表面信息的重要手段。随着遥感数据量的激增,如何高效、智能地分析和应用这些数据,成为了一个亟待解决的问题。本文将探讨遥感大数据智能分析的现状与未来趋势。遥感大数据的挑战与机遇遥感数据正以前所未有的速度增长,这些数…