golang 64位linux环境下编译出32位程序操作

目标:在64位linux系统上编译出32位程序。

操作:

1.执行 go env 查看当前go环境配置

2.执行 export GOARCH=386 配置go输出系统平台为32位

3.go build 编译程序

4.使用file main 指令查看编译出的可执行程序是否为32位

实践图片:

补充:golang float32/64与[]byte互转

网络协议开发中经常需要将int、float、bool等转为二进制数据,float32、64 与[]byte处理:

import (
  "encoding/binary"
  "math"
)

func Float32ToByte(float float32) []byte {
  bits := math.Float32bits(float)
  bytes := make([]byte, 4)
  binary.LittleEndian.PutUint32(bytes, bits)
  return bytes
}

func ByteToFloat32(bytes []byte) float32 {
  bits := binary.LittleEndian.Uint32(bytes)
  return math.Float32frombits(bits)
}

func Float64ToByte(float float64) []byte {
  bits := math.Float64bits(float)
  bytes := make([]byte, 8)
  binary.LittleEndian.PutUint64(bytes, bits)
  return bytes
}

func ByteToFloat64(bytes []byte) float64 {
  bits := binary.LittleEndian.Uint64(bytes)
  return math.Float64frombits(bits)
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • golang-redis之sorted set类型操作详解

    1:安装redigo go get github.com/garyburd/redigo/redis 2:引用redigo import ( "github.com/garyburd/redigo/redis" ) 3:连接Redis c, err := redis.Dial("tcp", "192.168.2.225:6379") if err != nil { fmt.Println("connect to redis err&qu

  • Golang中的path/filepath包用法

    path/filepath包下的相关函数 1. ToSlash函数 func ToSlash(path string) string 功能:将path中平台相关的路径分隔符转换成'/' 例如:windows当前路径: D:\gopro\src\study,转换之后D:/gopro/src/study 2. FromSlash函数 func FromSlash(path string) string 功能:将 path 中的 '/' 转换为系统相关的路径分隔符 3.Dir函数 func Dir(p

  • golang 解析word文档操作

    baliance/gooxml gooxml是可以对整个office document提供支持的golang库,功能很强大,这里简单给出对word文档的读取案例 安装 go get baliance.com/gooxml/ go build -i baliance.com/gooxml/- 解析word代码 package main import ( "fmt" "log" "baliance.com/gooxml/document" ) fun

  • golang逐行读取文件的操作

    我就废话不多说了,大家还是直接看代码吧~ func ReadLine(fileName string) ([]string,error){ f, err := os.Open(fileName) if err != nil { return nil,err } buf := bufio.NewReader(f) var result []string for { line, err := buf.ReadString('\n') line = strings.TrimSpace(line) if

  • golang 字符串切片去重实例

    实现目的:实现字符串切片去重,只是两个字符完全相同时,去除一个. 实现方式:考虑两种,一种是常规的双重循环去除,另一种是利用map的key的唯一性实现. 1.通过双重循环来过滤重复元素 方法1, 思路:利用for双重循环,新建一个slice,遍历原slice中的每一个元素,每一次判断这个元素和后面元素是否相同,若相同则去除,若不同则存入新slice中,判断本元素后,再继续判断下一个元素,直到判断完毕. package main import "fmt" func main() { va

  • 以alpine作为基础镜像构建Golang可执行程序操作

    Alpine介绍 Alpine 操作系统是一个面向安全的轻型 Linux 发行版.它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐.在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种

  • golang 如何获取pem格式RSA公私钥长度

    因在做license注册机制当中,有对根据本地RSA pem密钥文件判断出RSA的公私密钥长度的需求(即:根据pem内容判断出RSA密钥是1024位或者2048位,或者其他位数等),因此个人通过思考,摸索整理出一个方法,予以记录,备用,分享. package main import ( "crypto/rsa" "crypto/x509" "encoding/pem" "errors" "fmt" &quo

  • golang 64位linux环境下编译出32位程序操作

    目标:在64位linux系统上编译出32位程序. 操作: 1.执行 go env 查看当前go环境配置 2.执行 export GOARCH=386 配置go输出系统平台为32位 3.go build 编译程序 4.使用file main 指令查看编译出的可执行程序是否为32位 实践图片: 补充:golang float32/64与[]byte互转 网络协议开发中经常需要将int.float.bool等转为二进制数据,float32.64 与[]byte处理: import ( "encodin

  • Linux 环境下编译安装MySQL5.6的笔记记录

    一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为止mysql仍然是免费开源,可以直接在官网下载,大家可以自行访问官网去下载, 网址是:https://www.mysql.com/downloads/ ,当然下载前大家需要先去注册一个Oracle账户,然后选择社区免费版进行下载. 三.安装依赖包以及cmake编译工具 yum install -y

  • 详解Win10 Bash/WSL调试Linux环境下的.NET Core应用程序

    一.简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的. 在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统(Bash/WSL).要全用Bash/WSL也比较简单,首先要先打开开发者模式( 设置 → 更新和安全 → 针对开发人员 → 开发人员模式), 然后在控制面板 → 程序 → 启用Windows功能 → Windows Subsystem

  • Linux环境下的高级隐藏技术

    摘要:本文深入分析了Linux环境下文件.进程及模块的高级隐藏技术,其中包括:Linux可卸载模块编程技术.修改内存映象直接对系统调用进行修改技术,通过虚拟文件系统proc隐藏特定进程的技术. 隐藏技术在计算机系统安全中应用十分广泛,尤其是在网络攻击中,当攻击者成功侵入一个系统后,有效隐藏攻击者的文件.进程及其加载的模块变得尤为重要.本文将讨论Linux系统中文件.进程及模块的高级隐藏技术,这些技术有的已经被广泛应用到各种后门或安全检测程序之中,而有一些则刚刚起步,仍然处在讨论阶段,应用很少.

  • linux环境下的Oracle部署教程

    一. 环境及相关软件 虚拟机:VMwore Workstation Linux系统:CentOSORACLE: ORACLE_112030_Linux-x86-64 Xmanger软件 二. 安装虚拟机及Linux系统 1. 安装虚拟机 2. 安装Centos 2.1 新建虚拟机 2.2 下一步,选择后续装操作系统 2.3 选择操作系统,选择linux,版本选择centos 64位 2.4 虚拟机命名及文件位置选择 2.6 选择硬盘大小,练习时可选择默认20G 2.7 下一步,即已完成准备创建虚

  • Linux环境下的Java(JDBC)连接openGauss数据库实践记录

    目录 一.测试环境: 本实验预置环境 二.Linux环境安装Java环境及配置步骤 三.准备链接数据库的环境 四.连接测试 五.经验小结(FAQ) 一.测试环境: 本实验预置环境 1)操作系统版本:CentOS 7 64位(CentOS Linux release 7.6.1810)2)DataBase & JDBC版本: openGauss 2.0.1. JDBC驱动版本:JDBC_2.0.0官方下载地址:https://opengauss.org/zh/download/ (Tips:官方最

  • Linux环境下段错误的产生原因及调试方法小结

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个

  • 在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    操作系统:Ubuntu 17.04 64位 MySQL版本:MySQL 5.7 一.查看3306端口是否开放 netstat -an|grep 3306 如果看到下图这样的,说明端口并未打开: 二.修改访问权限 进入目录"etc/mysql/mysql.conf.d/",如下图所示: 在这个目录下,有一个配置文件"mysqld.cnf",如下图所示: 打开这个配置文件: sudo vim mysqld.cnf 文件打开后有一大段注释说明,不用去管它,直接看到下图中的

  • linux环境下恢复rm误删的文件方法

    目录 前言 rm之后还有救吗 使用foremost找回文件 使用extundelete找回文件 预防误删引发的事故 总结 前言 一提到在 linux 环境下删除文件,那绝对离不开 sudo rm -rf /* 这个梗,每次看到这个命令,我都想到一幅恶搞的图片: 这个『清理垃圾』的说明真是解释的"恰到好处",据说有小白在论坛问问题,被人开玩笑的回复了 sudo rm -rf /* 这个命令,结果问题就解决了,人也拜拜了~ 从删库到跑路,一天一个入狱小技巧,所以我们一定要谨慎使用 rm -

  • Linux环境下安装JDK1.8

    本文主要介绍的是如何是Linux环境下安装JDK的,因为Linux环境下,很多时候也离不开Java的,下面笔者就和大家一起分享如何jdk1.8的过程吧. 一.安装环境 操作系统:Red Hat Enterprise Linux 6 64 位(版本号6.6) JDK版本:1.8 工具:Xshell5.Xftp5 说明:本文是通过Xshell5工具远程连接Linux操作,如果是直接在Linux可视化界面操作那就更方便了,原理一样. 二.安装步骤 第一步:下载安装包 下载Linux环境下的jdk1.8

随机推荐