Go编译到linux运行出现 cannot execute binary file

Linux中执行java命令报错:cannot execute binary file: Exec format error cannot execute binary file: Exec format error 阅读详情
AI摘要

本文讲述了作者在学习Go语言过程中,从在Windows上成功创建Hello,World!可执行文件,到遇到Linux编译报错,通过设置GOOS和GOARCH环境变量,以及调整goenv配置,最终在Linux服务器上成功运行的故事。

1.初学Go就在windows上写了个"Hello,World!",在windown上编译了一下,生成了可执行文件。运行无问题

go build text.go 
.\text.exe
Hello,World!

2.但是按照网上的教程进行生成linux的可执行文件时出现报错

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o text text.go

3.将编译的二进制文件上传的服务器后运行报错,去网上查阅,大部分文章都是说CORAHC 和linux架构不一致,但是我这边并没有什么问题。

[root@database awesomeProject1]# ./text 
-bash: ./text: cannot execute binary file

4.后来查到,linux不能执行,可能因为生成的格式不是linux平台可以执行的格式。然后用  go env 命令查看本地go的配置

 原来是第一步修改的配置没有生效,默认的还是windows

经过查证,现在我们的操作系统都默认用powershell,所以命令不能按照第一步的写,那种是cmd的写法

改成:

$env:GOOS="linux"

然后再看,配置已经修改为linux了

5.然后再重新编译文件后上传的linux服务器。测试运行正常

[root@database ~]# chmod +x text 
[root@database ~]# ./text 
Hello,World!

【Windows】Windows 平台使用 MinGW 编译程序遇到报错 cannot execute binary file: Exec format error 的一种原因 exec format error 原因很多,其中一个原因可能是 ELF 文件依赖的某个静态依赖库存在问题。 阅读详情

相关推荐

Ubuntu 16.04 上用 GOOS/GOARCH 实现 Go 多平台编译

Go 语言的跨平台编译能力源于其静态链接机制与内置多目标支持,无需模拟或虚拟化即可生成 Windows、macOS、Linux、ARM 等原生可执行文件。其核心原理是编译器根据 GOOS(目标操作系统)和 GOARCH(目标架构)条件编译源码分支,并由链接器生成对应格式(如 PE、Mach-O、ELF)。该能力显著提升 DevOps 构建效率、开源项目分发兼容性及 IoT 设备适配灵活性。在 Ubuntu 16.04 这类稳定 LTS 系统上,配合 Go 1.19+,可实现零依赖、秒级、高一致性的多平台二进

cqbh2011的博客 440

解决 cannot execute binary file: Exec format error

"cannot execute binary file: Exec format error" 错误通常发生在尝试执行一个不兼容的二进制文件时。这可能是因为你正在尝试运行一个不同体系结构的可执行文件,或者文件本身可能已经损坏。我在qmake修改的时候不小心安装了x86架构的编译器无法编译arm架构的。我这里的解决方法是重新安装如何指定qmake的路径即可。安装完交叉编译器一定要记得使用source 命令去使能。指令格式为:source + 交叉编译器的安装路径。后面就可以愉快的编译+烧录了。

qq_56992543的博客 3万+

Go程序构建与安装:从代码到可分发二进制的完整工程链

Go程序的本质是编译型工程,其‘创建’与‘安装’并非独立操作,而是模块化构建、静态链接、跨平台交叉编译三位一体的技术流程。理解go build和go install的底层原理,关键在于掌握模块路径规范、cmd/目录约定、GOOS/GOARCH环境变量调度机制,以及-ldflags注入和CGO_ENABLED控制等核心参数。这些能力直接决定二进制是否可复现、可分发、可嵌入Docker或GitHub Releases。本文聚焦Go 1.21+现代工具链,详解如何生成轻量、安全、多平台兼容的生产级可执行文件,覆盖

weixin_30335575的博客 313

解决linux下cannot execute binary file: Exec format error

对于linux下cannot execute binary file: Exec format error明确说明是执行文件格式错误,可能情况: 1.使用错误的命令,如gcc -c hello.c -o hello,这样得到的是.o文件,而不是可执行程序,此时使用./hello就会报上述错误!此时应改用gcc hello.c -o hello就可以啦! 2.如果不是上述错误,就可能是版

云鹤起舞的博客 42万+

Ubuntu安装Go正确姿势:为什么必须用tarball而非apt

Go语言是一种静态链接、零依赖的系统级编程语言,其设计哲学强调自包含与版本可控。官方推荐通过二进制分发包(tarball)安装,核心原理在于规避包管理器(如apt)导致的版本滞后、工具链割裂与路径污染问题。该方式保障了GOROOT、PATH和GOPATH等关键环境变量的可预测性与工程一致性,显著提升云原生开发、CI/CD集成及多版本共存场景下的稳定性与可维护性。本文聚焦Ubuntu平台,深入解析tarball安装全流程及其背后的技术逻辑。

weixin_34268753的博客 332

WinCC ActiveX控件“许可证缺失”故障排查:从注册表修复到系统兼容性全解析

本文深入解析WinCC ActiveX控件报错“未找到许可证信息”的根本原因与解决方案。核心在于系统注册表中控件的设计时许可证密钥丢失或损坏。文章提供了从手动修复注册表、排查64位系统兼容性,到预防性环境部署的全流程专业指南,帮助工程师彻底解决这一常见故障。

oil88的博客 646

Cannot execute binary file

Cannot execute binary file linux系统下遇到cannot execute binary file的问题,一般由以下情况造成: 1. 非root用户或者无执行权限 使用chown命令...

cuanxixia1496的博客 1万+

基于RFM模型的电商零售数据分析

E-Commerce Data 数据集介绍 E-Commerce Data Actual transactions from UK retailer 数据集地址(kaggle) https://www.kaggle.com/carrie1/ecommerce-data/kernels 该数据来源于kaggle,是一家注册在英国的电子商务网站的2010年12月份-2011年12月份之间的...

W_H_M_2018的博客 3099

mac上 go build的二进制文件在Linux上运行提示cannot execute binary file或者-bash: ./sayHello: 无法执行二进制文件的解决方式

mac上 go build的二进制文件在Linux上运行提示cannot execute binary file或者-bash: ./sayHello: 无法执行二进制文件的解决方式

u011285281的博客 4668

AOSP Android14 Launcher3——动画核心类QuickstepTransitionManager详解

是一个复杂但核心的动画管理器。它利用 Android 的远程动画机制,拦截系统默认的窗口切换,并替换为高度定制、与 Launcher UI 深度集成的平滑过渡动画。当用户从一个应用程序通过手势或按键返回到 Launcher (桌面) 时,它负责创建和运行动画,使得应用程序窗口能够平滑地过渡(通常是缩小)到 Launcher 上的对应目标(图标、小部件或屏幕中心),同时 Launcher 界面元素(工作区、背景等)恢复显示。计算动画所需的各种参数,如窗口的起始/结束位置、缩放比例、透明度、圆角、裁剪区域等。

Micheal_Yang's Blog 2670

信息安全与技术——(十一)恶意代码检测与防范技术

恶意代码(Malicious Code )或恶意软件(Malware )主要是指以危害信息的安全等不良意图为目的的程序,它们一般潜伏在受害计算机系统中实施破坏或窃取信息。

m0_63853448的博客 5991

如何构建针对不同操作系统和架构的golang application.解决cannot execute binary file exec format error 问题

golang针对不同的系统和平台构建对应的可执行程序,当可执行程序与运行环境的系统或平台不对应的时候会报错 cannot execute binary file exec format error

u011285281的博客 1078

全网最全-QCC51xx-QCC30xx(TWS)系列从入门到精通开发教程汇总(持续更新中)

QCC3040开发笔记之基本介绍(0) QCC3040开发笔记之开发环境搭建(1) QCC3040开发笔记之debug调试(trb调试,usbt调试,adb调试,WIFI调试)(2) QCC3040开发笔记之按键配置(3) QCC3040开发笔记之按键切换(4) QCC3040开发笔记之按键逻辑(5) QCC3040开发笔记之tone(6) QCC3040开发笔记之提示音(7) QCC3040开发笔记之bitserial接口(8) QCC3040开发笔记之双mic+AEC+ANC(9...

心跳包的博客 3万+

问题:cannot execute binary file

问题描述: 执行可执行文件出现如下报错 ```bash ./alertmanager bash: ./alertmanager: cannot execute binary file ``` 原因分析: 下载的文件的编译环境与当前环境不一致导致 解决方案: 下载与当前系统匹配的二进制文件即可 ...

yunweigo的博客 1809

优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

MIPI的协议我就不详细介绍了(可以查看<下面的二维码>),这里和开源方案比较接近的即使FPGA实现MIPI物理层(DPHY)中电气属性相关的几种方案:MIPI DPHY RX...

OpenFPGA的博客 4457

内存泄漏系列专题分析之二十一:高通相机CamX内存泄漏&内存占用分析--GPU内存拆解

通过上述debug方式,可以看到patch补丁可以顺利debug各种ION内存分布,可以通过它分析ION内存占用问题。同时我们还可以分析GPU内存泄漏问题,同样的方式可以看到所有的GPU内存分布,如果某个GPU内存持续增长,就极有可能内存泄漏,然后更具堆栈信息去分析代码,并解决GPU内存泄漏问题。!!

454

Golang的交叉编译问题

参考:Golang交叉编译各个平台的二进制文件 - Go语言中文网 - Golang中文社区 (studygolang.com)、也谈Go的可移植性 | Tony Bai 今天准备将一个在Mac上开发的Golang项目部署到云服务器上进行部署上线,于是通过go build将项目编译成mac下的Unix可执行二进制文件上传到了CentOS云服务器准备运行,但此时报了一个错: -bash: ./Technology-Learning-Community: cannot execute binary file.

欢迎来到 Baret-H 的博客 2484

卷积神经网络中的自注意力机制(Self-Attention Mechanism)

卷积神经网络中的机制表现为操作,其实现过程与Seq2Seq模型的自注意力机制类似。标准的卷积层是一种局部滤波操作,其输出特征上的任意位置是由对应输入特征的一个邻域构造的,只能捕捉局部特征之间的关系。而自注意力机制通过计算任意两个位置之间的关系直接捕捉远程依赖,而不用局限于相邻点,相当于构造了一个的卷积核,从而可以捕捉更多信息。在卷积网络的自注意力机制中,首先构造输入特征x的键特征fx, 查询特征gx和值特征hx;

AI天才研究院 1501

MediaMTX 国产化部署指南:龙芯与鲲鹏从零编译到调优的完整避坑实践

如果你正在做 MediaMTX 国产化部署,卡在"龙芯上交叉编译到底行不行""鲲鹏服务器跑得稳不稳"这两个问题上,这篇实践可以直接参考。MediaMTX(前身 rtsp-simple-server)是一个即开即用的实时媒体服务器兼媒体代理,能对 RTSP、RTMP、HLS、WebRTC、SRT 等协议的音视频流做发布、读取、代理、录制和播放。它用 Go 实现、几乎不依赖外部库,这正是它在国产环境里

gitblog_00538的博客 346

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

golang java 服务器_如何部署Golang程序到服务器

学习go语言有段时间了,都是本地开发调试访问。一直想怎么打包到服务器上,今天终于请教大神们算是搞明白了一些,下面是我的采坑经历。文/谦益环境开发环境:mac生产环境:virtualbox (虚拟机)下的 CentOS 6.8virtualbox服务器环境本地开发mac环境 go env 参数历程go的代码package mainimport ("fmt""log""net/http")func s...

weixin_42365198的博客 305

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Goland跨平台编译实战:Windows下如何一键生成Linux/Mac可执行文件

本文详细介绍了如何在Windows系统下使用Goland IDE实现Go语言的交叉编译,一键生成适用于Linux和macOS系统的可执行文件。通过配置GOOS和GOARCH环境变量,结合Goland的运行配置功能,开发者可以轻松构建自动化编译工作流,解决跨平台部署的兼容性问题,提升开发效率。

mm9012的博客 961

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Go构建与安装全解析:从go build到go install的生产实践

Go构建是将源码转化为可执行二进制的核心过程,其本质是Go编译器(gc)与链接器协同工作的静态编译机制。理解go build、go install和go get三者的原理差异,是实现跨平台分发、版本可控安装与依赖安全管理的技术前提。go build专注本地编译,支持交叉编译(GOOS/GOARCH)、体积优化(-ldflags="-s -w")和元信息注入(-X);go install则基于模块路径完成远程拉取与全局命令注册,是现代Go CLI工具分发的标准方式。该能力直接支撑Docker镜像精简、Kube

weixin_30542079的博客 362

MediaMTX 平台适配与编译部署完整指南:龙芯、鲲鹏双平台实操(附 Go 1.26 交叉编译与实测数据)

MediaMTX(前身 rtsp-simple-server)是一款开箱即用的实时媒体服务器与代理,一条命令即可发布、读取、转发、录制 RTSP / RTMP / HLS / WebRTC / SRT 等协议的音视频流。本教程带你把 MediaMTX 在国产化的龙芯与鲲鹏平台上完成适配、交叉编译并部署上线,适合正在做信创改造的运维与后端同学跟着一步步实操。 ## 🧭 先搞懂平台:龙芯 loon

gitblog_01196的博客 389

Ubuntu下Go语言运行环境安装

linux系统中的i386/i686和x86_64有什么区别ttps://blog.youkuaiyun.com/zhou5712/article/details/65935783 go文件运行错误日志 bash: /usr/local/go/bin/myprog: cannot execute binary file: Exec format error 【原因】go安装包为64位,实际Ubantu环境为3...

citongke1的专栏 288

GoLang基础

GoLang基础 文章目录GoLang基础一. 环境部署1.1 源码包下载1.2 在Linux中部署1.3 IDE推荐二. 语言特性2.1 优势2.2 强项2.3 缺点三. 基础语法3.1 HelloWorld3.2 变量的声明3.3 常量的声明3.4 基础数据类型3.5 扩展数据类型3.6 运算符3.7 输入输出3.8 分支语句3.9 循环语句3.10 函数3.11 方法四. 重点基础4.1 import 导包4.2 面向对象4.3 接口4.4 错误与异常 一. 环境部署 1.1 源码包下载 国外网址:

weixin_38662859的博客 818

Golang在数学建模中的工程化实践:从环境配置到安全交付

数学建模已超越传统算法实现,进入高并发、可部署、强合规的工程化阶段。Golang凭借静态编译、原生并发、内存可控和安全工具链等特性,成为连接数学逻辑与生产系统的理想桥梁。其核心价值体现在环境可复现(Go Modules/CGO_ENABLED/交叉编译)、模型可验证(接口抽象+参数配置+竞速调度)、系统可审计(输入校验+依赖扫描+结构化日志)三大维度。尤其在量化回测、实时优化、多目标求解等典型场景中,Go显著提升P99延迟稳定性与资源利用率。本文聚焦真实竞赛与工业项目中的Go建模实践,覆盖环境筑基、模型封装

weixin_33851177的博客 351
上一篇: 记一次内网kafka映射到外网端口遇到小问题
下一篇: Kubernetes 集群扩容与 Flannel 故障排除记录
chen_ke_hao
博客等级 码龄9年 44粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值