golang windows打包为linux可执行文件

使用go的交叉编译功能

set GOOS=linux
set GOARCH=amd64

然后再执行go build

可能会报异常, 所以贴出我的go env配置仅供参考

go env环境配置
D:\GoWork\src\go-tzv>go env
set GO111MODULE=auto
set GOARCH=amd64                              
set GOBIN=                                    
set GOCACHE=E:/GoSet/GoCache                  
set GOENV=C:\Users\rd18\AppData\Roaming\go\env
set GOEXE=
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\GoWork\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=linux
set GOPATH=D:\GoWork
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:/Golang/gvm/go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=D:\Golang\gvm\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.21.7
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=D:\GoWork\src\go-tzv\go.mod
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-fPIC -m64 -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\rd18\AppData\Local\Temp\go-build582731005=/tmp/go-build -gno-record-gcc-switches

家里电脑的go env环境经过与公司电脑对比发现我本机的CGO_ENABLED=1, 与公司电脑环境配置不一致.
修改之后正常

go env -w CGO_ENABLED=0

windows打包和使用windows交叉编译为linux包都正常
在这里插入图片描述

附带说明:

CGO_ENABLED 是一个环境变量,在Go语言环境中使用时,它控制着是否启用cgo支持。cgo是一个允许Go代码调用C语言库的工具,这对于需要访问底层系统功能或者利用现有的C库功能的Go程序非常有用。

当 CGO_ENABLED 的值为:

1:表示启用cgo支持。在编译时,Go编译器会允许通过import "C"引入C代码,并在生成的输出中包含C语言部分的编译和链接。

0:表示禁用cgo支持。这将阻止Go程序在编译时链接任何C代码,从而可能减少最终可执行文件的大小,简化部署,并避免与C库的兼容性问题,但同时也意味着不能使用那些依赖cgo的包或功能。

在进行交叉编译时,正确设置 CGO_ENABLED 非常重要,因为它影响到目标平台上的二进制文件能否正确地链接到C库。例如,当你从Linux编译针对Windows的Go程序时,可能需要设置 CC 和 CXX 环境变量指向对应的交叉编译器,并且根据情况决定是否开启 CGO_ENABLED。

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

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

相关文章

Maven 插件列表详解

Maven 是一个强大的项目管理和构建工具,广泛应用于 Java 项目中。作为一款优秀的构建管理工具,Maven 不仅提供了标准化的项目结构和依赖管理,还通过其丰富的插件系统,极大地扩展了其功能和灵活性。无论是代码编译、测试、打包&…

2024级中国社科院中外合作办学双证博士和英国斯特灵的管理学博士

2024级中国社科院中外合作办学双证博士和英国斯特灵的管理学博士 中国社科院-英国斯特灵大学合办的创新与领导力博士项目(DOCTOR OF MANAGEMENT 简称“DMAN”)是中国社会科学院大学(中国社会科学院研究生院)第一个博士层次的中外…

要颜值有颜值,有性价比有性价比,华硕天选键、鼠组合分享

作为ROG产品的忠实粉丝,用过不少ROG 相关的产品,近期华硕天选TX98和天选MINI 鼠标的发布,独特配色令我眼前一亮。 华硕天选TX98键盘,作为新品,从看上的第一眼就觉得这款键盘是非常值得推荐。 它完美地诠释了潮玩新次元…

亲测:无影云电脑免费三个月已经缩短为1个月

亲测:无影云电脑免费三个月已经缩短为1个月,大家不要再找3个月的无影云电脑,已经没有了,目前最新消息是1个月。以前可以领3个月,现在只能领1个月,在阿里云免费中心 https://free.aliyun.com/ 大家自己看吧&…

光伏电站管理app,一站式管理,一体化接单

早在1839年,法国科学家贝壳雷尔就发现了“光伏效应”,随后诞生了“光学发电”技术。随着现代化与工业化的不断发展、进步,出于资源再生与保护环境的需要,人们越来越重视光伏发电技术,也越来越追求光伏电站的智能化管理…

Java中的运算符及其示例

Java中的运算符及其示例 运算符是指示编译器执行特定操作的符号。例如,“”运算符指示编译器执行加法,“>”运算符指示编译执行比较,“”用于赋值等等。在本指南中,我们将借助示例讨论java中的操作。 运算符和操作数&#…

钽掺杂锂镧锆氧(LLZTO)是优秀固态电解质 未来行业前景良好

钽掺杂锂镧锆氧(LLZTO)是优秀固态电解质 未来行业前景良好 钽掺杂锂镧锆氧,也称为锂镧锆钽氧,英文简称LLZTO,外观为白色或淡黄色结晶粉末状。LLZTO具有锂离子电导率高、对锂化学性质稳定等特点,是一种立方晶…

BPE (Byte-Pair Encoding) Tokenization

目录 一、Tokenization 的概念二、BPE 的概念三、BPE 的步骤 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 需掌握的前提知识: 本文参考: P24 台大资讯 2023秋季 深度学习之应用 &#xff5…

mybatis使用注解形式实现一对多、多对多查询(转载)

1、链接:一对一,一对多 2、多对多 原文 MyBatis的注解实现复杂映射开发 实现复杂关系映射之前我们可以在映射文件中通过配置来实现,使用注解开发后,我们可以使用Results注解,Result注解,One注解&#x…

Java学习笔记之基本数据类型转换

前言 本篇文章是基于我本人在初学JAVA阶段想记录的的学习笔记,如有错误,恳请指正。今天要干掉的是JAVA的基本数据类型转换。 笔记目录一览 前言一,基本数据类型复习二,基本介绍什么是自动类型转换? 三,任…

统计信号处理基础 习题解答10-15

题目 对随机变量的随机性的一个度量是它的熵(entropy),熵定义为: 如果,求这个熵,并说明它与PDF集中度的关系。观察到数据后,后验PDF的熵可以确定为: 且它应该比小。因此&#xff0c…

Redis 高可用 sentinel

简介 Sentinel提供了一种高可用方案来抵抗节点故障,当故障发生时Redis集群可以自动进行主从切换,程序可以不用重启。 Redis Sentinel集群可以看成是一个Zookeeper集群,他是Redis集群高可用的心脏,一般由3-5个节点组成&#xff0…

人体接近传感器,ATM微波传感器,人体存在传感器 微波探测器YTMW8631

人体接近传感器,ATM微波传感器,人体存在传感器 微波探测器YTMW8631 史新华 批发Atm微波探测器,Atm传感器人体接近传感器,Dvr录像机专用微波感应器,Atm机录像系统专用感应器 微波传感器的多领域应用 微波探测器是利用微波的多普勒效应来探测运动物体&…

Linux系统编程——进程信号

目录 一,信号预备 1.1 生活中的信号 1.2 技术应用中的信号 1.3 signal函数捕捉信号 1.3 信号的发送与记录 1.4 信号的常见处理方式 二,信号的产生 2.1 核心转储 2.1.1 环境配置 2.1.2 利用core文件进行调试 2.1.3 core dump标志 2.2 通过系统…

程序猿大战Python——文件操作、异常、模块——导入模块

导入模块的方式 目标:了解导入模块的方式有哪些? 模块指的是:以.py结尾的Python文件。 注意:模块名属于标识符。 在模块中,能定义函数、变量和类等,也能包含其他一些可执行的代码,比如print(x…

【ClickHouse】简介入门、Clickhouse的特点、ClickHouse 的安装(一)

简介 ClickHouse入门 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的特…

【质量】软件系统数据质量管理过程(Word原件)

软件系统数据做数据质量管理至关重要,原因有四: 首先,数据质量直接影响软件系统的性能和用户体验。高质量的数据能够确保系统稳定运行,提供准确、可靠的信息支持,从而增强用户的满意度和信任度。 其次,数据…

集团门户网站的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,论坛管理,集团文化管理,基础数据管理,公告通知管理 前台账户功能包括:系统首页,个人中心,论坛&#xff0…

仓库管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,公告管理,物资管理,基础数据管理,用户管理 用户账户功能包括:系统首页,个人中心,公告管理,物…

Stable Diffusion AI绘画助力建筑设计艺术创新——城市建筑设计大模型分享

大家好,我是向阳 今天我将针对建筑设计方面的AI大模型进行简单介绍,我们将通过富有想象力的关键词或结合Stable Diffusion 的ControlNet 给原本只有黑白线条的线稿变成彩色的效果图,可能你只需要短短几分钟就可以让黑白线稿变成几种甚至十几种…