go 跨平台编译linux,golang 跨平台编译

只需要指定目标操作系统的平台和处理器架构即可:

命令行方式

因为不支持CGO,所以要禁用CGO

SET CGO_ENABLED=0 // 禁用CGO

SET GOOS=linux // 目标平台是linux

SET GOARCH=amd64 // 目标处理器架构是amd64

然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。

Mac 下编译 Linux 和 Windows 平台 64位 可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux下编译 Mac 和 Windows 平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0

SET GOOS=darwin

SET GOARCH=amd64

go build

make file 方式

# Binary name

BINARY=your_app_name

# Builds the project

build:

go build -o ${BINARY}

go test -v

# Installs our project: copies binaries

install:

go install

release:

# Clean

go clean

rm -rf *.gz

# Build for mac

go build

tar czvf ydict-mac64-${VERSION}.tar.gz ./ydict

# Build for linux

go clean

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

tar czvf your_app_name-linux64-${VERSION}.tar.gz ./ydict

# Build for win

go clean

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

tar czvf your_app_name-win64-${VERSION}.tar.gz ./ydict.exe

go clean

# Cleans our projects: deletes binaries

clean:

go clean

.PHONY: clean build

整个过程看起来非常简单,运行起来也非常简单,调用make release命令,并给VERSION变量赋值不同的版本号即可:

make release VERSION=0.9

命令会编译出不同平台可运行的压缩包:

ydict-mac64-0.9.tar.gz

ydict-linux64-0.9.tar.gz

ydict-win64-0.9.tar.gz

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

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

相关文章

linux7 修改服务启动项目命令,centos7服务部署flask项目

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?centos7语言配置问题登录服务器,注意观察是否出现以下警告提示warning: setlocale: LC_CTYPE: cannot change locale (en_US.utf8): No such file or d…

虚拟机linux中怎样打开qt,虚拟机中在Centos 4.7中安装qt-x11-opensource-4.4.3

本人最近学习qt,把qt安装在了虚拟机下,用的是免费的Linux,qt是Linux下开发c不错的软件,经过了2天的奋战,终于把qt安装在了自己的机器上面,现在把安装步骤告诉大家,希望对你们安装错误的同志们有…

linux top p 乱码,将Linux top命令输入到指定文件时的乱码问题

根据需求,项目需要读取linux系统环境参数,所以需要将top命令的输出结果输入到文件中。用重定向命令如下:topresult.txt。用vi打开文件:viresult.txt。显示的根据需求,项目需要读取linux系统环境参数,所以需…

linux龙芯自动挂载u盘,Windows Subsystem for Linux (WSL)挂载移动硬盘U盘

WSL想通过移动硬盘处理一些数据,结果进去了无法发现移动硬盘,于是搜了好久也没有一个正确的解决办法,终于找到一个,现在贡献出来与大家共享。WSL比起linux挂载硬盘简单一些。而且windows本身自己的硬盘位ntfs格式,所以…

win10子linux如何重置密码,Win10如何使用Windows PowerShell命令重置本地账户密码

在win10系统中,都自带有本地账户,为了安全也会给本地商户设置密码,不过使用一段时间之后,想要重置本地账户密码,但是很多用户并不知道要如何操作,其实我们可以使用Windows PowerShell命令方式来实现&#x…

linux wine 性能,Wine 1.9.16 发布,改善 GDI 性能

Wine 1.9.16 最近发布下载,配备了大量的新功能,改进和错误修正。显着的更新包括在MacOS下能更好与64位二进制兼容性,提升JavaScript性能,对Direct3D的改进,在Direct3D更多的着色器指令,提升GDI性能&#xf…

linux上的定时器上的jiffies,Linux kernel -- 定时器/jiffies

0. 测试环境Linux 2.6.39 AT91SAM9G451. 定时器简单的测试例子#include #include MODULE_LICENSE("GPL");struct timer_list tm;static int num;static void func(){num;mod_timer(&tm, jiffies HZ);printk("Hello, timer :%d\n", num);}static int t…

二级考试c语言中 星号与字母 题型总结,2017年计算机二级考试C语言知识点归纳...

2017年计算机二级考试C语言知识点归纳计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。下面是2017年计算机二级考试…

c语言字符串查找子串并截取,如何搜索截取特定字符串?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼有如下文本:config KEXEC_COREboolconfig OPROFILEtristate "OProfile system profiling"depends on PROFILINGdepends on HAVE_OPROFILEselect RING_BUFFERselect RING_BUFFER_ALLOW_SWAPhelpOProfile is a …

c#语言输出字符串长度,C#获取字符串长度(string.Length)

字符串实际上是由多个字符组成的,字符串中的第一个字符使用字符串[0]即可得。[0]中的0称为下标。获取字符串中的第一个字符使用的下标是0,则字符串中最后一个字符的下标是字符串的长度减1。使用C#语言如果要获取字符串的长度,使用Length属性即可&#xf…

用栈实现计算器c语言报告,请问,用c语言做一个计算器 包括+-*/()的运算 用栈 该怎么做...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#define UINT unsigned intstruct LOGIC{UINT logic,site;};char *text"8*9*(87)12/6-4";int calc_exp(char *sz);int calc_part(int a,int b,UINT w);int main(int argc,char *argv[]){std::cout<st…

c语言sqrt多个重载函数,“sqrt”: 对重载函数的调用不明确——解决方法

#include#includeusing namespace std;int main(){int i,j,k,flag;i 2;while(i < 100){flag 1;k sqrt((double)i);j 2;while(j < k){if(i%j 0){flag 0;break;}j;}if(flag)cout<i;}getchar();return 0;}报错&#xff1a;“ sqrt ”&#xff1a;对重载函数的调用不…

c语言截图代码,截图代码 哪位大神帮我找一下错,截出来的图是这样子的

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼终于找到了&#xff0c;前段时间研究jpg的时候&#xff0c;顺便做的一个实验&#xff0c;直接输出bmp文件。参考了微软的一个很老的代码里的字节对齐。。但愿对你有帮助吧。#include #include // showdib.h 157行&#xff0c;字节对…

c语言鼠标环绕特效,C语言写的鼠标有残影,急需解决方案,在线等待!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼c语言写的鼠标点击后留下鼠标的残影&#xff0c;求高手的解决方案&#xff0c;多谢了。代码如下&#xff1a;int x,y;union REGS r;void mouse(){int xmin,xmax,ymin,ymax;setcolor(YELLOW);xmin2,xmax638;ymin2,ymax478;setwritem…

c语言搜索多层文件夹,c语言 遍历搜索文件夹(获取文件夹中所有内容)

需要用来存储文件各种信息的结构体&#xff1a;struct_finddata_t 及查找函数&#xff1a;_findfirst、_findnext和_fineclose。[1] _finddata_t结构体struct _finddata_t{unsignedattrib;time_ttime_create;time_ttime_access;time_ttime_write;_fsize_tsize;charname[_MAX_FN…

易语言取c盘文件夹中的文件被占用,win7系统怎么快速找出文件被什么进程占用|win7解除文件占用的方法...

‍‍很多时候我们想删除文件或文件夹的时候&#xff0c;会出现文件正在使用的提示导致文件无法删除&#xff0c;如果知道是什么程序在使用这个文件好&#xff0c;但多数时候我们并不知道是被什么程序占用&#xff0c;那么在win7系统怎么快速找出文件被什么进程占用呢&#xff1…

ncurses下c语言定位光标,C指针原理教程之Ncurses介绍

1、安装NcursesNcurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。Ncurses是一个能提供基于文本终端窗口功能的动态库. Ncurses可以: 只要您喜欢,您可以使用整个屏幕 创建和管理一个窗口 使用8种不同的彩色 为您的程序提供鼠标支持 使用…

菜鸟linux的sed,Linux sed命令菜鸟入门

本文首先以一个简单的sed命令应用示例&#xff0c;说明如何使用sed命令进行文本处理&#xff0c;接着从sed命令的用法、工作原理、行地址模式以及sed命令支持的脚本命令详细介绍sed命令的用法。一个完整的sed命令使用简单示例现在有一个待处理文件test.txt&#xff0c;文件中包…

android xml 列表展示,Android中ListView实现展示列表数据

1、在activity_main.xml中添加一个ListViewxmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layout_height"wrap_content"android:orientation"vertical"tools:context"${relativePack…

android的证书链管理,Android手册X509证书链验证

我已在我的代码中实现了javax.net.ssl.X509TrustManager,因此我可以验证我的软件访问的自签名证书.但是,我仍然需要验证其他一些“标准”网站SSL证书.我使用CertPathValidator.validate()来做到这一点,但我刚刚意识到我传递的一个证书链(对于maps.googleapis.com)实际上并不包含…