非零基础自学Golang 第15章 Go命令行工具 15.1 编译相关指令 15.1.3 install 15.1.4 交叉编译

news2025/7/7 21:01:17

非零基础自学Golang

文章目录

      • 非零基础自学Golang
      • 第15章 Go命令行工具
        • 15.1 编译相关指令
          • 15.1.3 install
          • 15.1.4 交叉编译

第15章 Go命令行工具

15.1 编译相关指令

15.1.3 install

go install命令的作用是编译后安装,该命令依赖于GOPATH,因此不能在独立的目录中使用该命令。

与go build不同的是,go install是将编译的中间件放到pkg目录下,将编译出来的可执行文件放到bin目录下。

使用动手写15.1.1和动手写15.1.2来运行go install命令。

C:\Users\admin\go\src\main>go install

在这里插入图片描述

OK,执行没报错

运行后,在目录C:\Users\admin\go\bin中就会生成可执行文件main.exe,由于这个包没有产生中间文件,因此在目录C:\Users\admin\go\pkg下就没有该包的pkg文件。

在这里插入图片描述

go install可以使用大部分go build的附加参数,由于go install的可执行文件的输出目录始终是GOPATH下的bin目录,因此不能使用-o参数指定输出的可执行文件名。

go install依旧可以使用-n参数来查看运行过程中该命令到底做了哪些事情。

C:\Users\admin\go\src\main>go install -n

在这里插入图片描述

在这里插入图片描述

可见,go install命令只是多了将可执行文件移动到bin目录下的动作。

15.1.4 交叉编译

交叉编译就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统。

举个例子,你使用Windows系统编写了一个Go语言程序,你的朋友想要在他的电脑上运行,可是他的电脑是Mac系统,又没有安装Go语言的编译器,这时你就可以在你的电脑上通过交叉编译的方式编译一个Mac系统可以直接运行的程序。

Go语言的交叉编译非常方便,只需在编译前设置一下Go的环境变量CGO_ENABLED、GOOS和GOARCH即可。

在Windows上编译Mac程序如下

# Windows下编译Mac
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go

其中GOOS为目标操作系统,GOARCH是目标操作系统的架构,CGO_ENABLED表示是否使用C语言版本的GO编译器,参数配置为0的时候就关闭C语言版本的编译器了。

【注意】

自从Golang 1.5以后,Go语言进行了自举,也就是Go语言编译器使用Go语言编写,而不再使用C语言。

【1】Windows下编译Linux

01 # Windows下编译Linux
02 SET CGO_ENABLED=0
03 SET GOOS=linux
04 SET GOARCH=amd64
05 go build main.go

【2】Mac下编译Linux、Windows

01 # Mac下编译Linux
02 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
03 
04 # Mac下编译Windows
05 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

【3】Linux下编译Mac、Windows

01 # Linux下编译Mac
02 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
03 
04 # Linux下编译Windows
05 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

在这里插入图片描述

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

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

相关文章

网上到处转行编程成功的,现实中真的容易吗?

首先,我先回答,转行编程真的这么简单么?答案是极其简单,但是也非常艰难。 这是一句正确的废话! 其实,网上到处都是转行成功的案例。而我们现在也是在互联网上咨询,所以得到的答案会是什么答案…

转行IT,你需要了解的真实项目研发流程是怎样的?

本文以我在阿里写bug的项目流程为例子,介绍软件项目的研发一般流程,也可以作为企业开发流程的参考,让想转行IT的同学提前心里有个数。 一、职位分工 一般的大厂或者互联网软件公司,都会有如下职位。 1、产品经理 负责产品的设计&a…

json-server的学习笔记

文章目录json-server简介1、入门环境依赖安装2、基本使用2.1 启动jsonserver2.2 **json-server相关配置参数**2.3 jsonserver中的请求方法的作用3、筛选过滤4、分页5、排序6、切片(分页)7、特殊符号8、全文搜索9、关系10、数据库11、主页12、附加功能12.1 静态文件服务器12.2 替…

青少年等级考试【Python通关干货知识点】(一级)

青少年等级考试【Python通关干货知识点】(一级) 1. 编程模式 1)交互式编程 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果。 交互式编程缺憾是没有保存下来&#x…

转行大数据,编程学Java还是Python?

Python和Java,是大数据行业最常见的两种编程语言,对于想转行大数据的人来说,学习哪个语言是比较好的选择呢? Python和大数据: Python本身的特点是高效率的开发和简单的维护,大数据运维领域也在普遍采用Pyth…

GridLayout案例

GridLayout-网格布局案例 1.网格布局-GridLayout 1.简介 无限细的线绘制的分割区域成行成列,和棋盘的样子差不多2.注意点 自己设置行数和列数自己控件在几行几列自己定义跨越的行数和列数自己设置子布局的排列的样式3.常见属性 4.网格布局属性 android:columnCount&…

【软件测试】测试人的懊恼,你要揭开的秘密复现bug......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 我们测试人常常会懊…

分布式微服务框架SpringCloud Alibaba学习(1)

springCloud 发展历史以及SpringCloud Alibaba概述 一.Why SpringCloud Alibaba? 1.微服务cloud新闻: 2020-12-22日Spring 官方博客宣布,Spring Cloud 2020.0.0正式发布。2020.0.0是第一个使用新的版本号命名方案的Spring Cloud 发行版本。在此之前S…

上次面试跪在了Redis上,刷完腾讯云大神亲码的“redis深度笔记”,终面进腾讯

前言 作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。 毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要使…

哈啰出行高质量故障复盘法:“3+5+3”(附模板)

# 一分钟精华速览 #故障复盘指的是及时把过去发生的错误,最大程度转化为未来可以规避的办法,其核心是不断减少失败因子繁衍的温床,将它们牢牢地掌控在不至于引发危机的范围之中。 作为国民基础设施的哈啰出行,在保障超5.3亿注册用…

按照等分份数或者分割点索引号列表将一个数组拆分为多个数组hsplit()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 按照等分份数或者分割点索引号列表 将一个数组拆分为多个数组 hsplit() [太阳]选择题 以下关于python代码表述有误的一项是? import numpy as np myArraynp.array([[0,1,2,3,4,5],[10,11,1…

“0基础、学历无优势、逻辑能力一般……”能转行做程序员吗?

此前,拉勾数据研究院对程序员群体做了一次深入调查,并发布了《2022程序员群体职场洞察报告》,报告显示,“高薪”依然是程序员的职业标签之一。在调查的程序员群体中,年薪在10-30万元之间的人数占比为66.7%,…

Sharding-JDBC(四)集成dynamic-datasource

目录1.Maven依赖2.yml配置3.DataSourceConfig.java4.TUserService.java5.TUserServiceImpl.java6.测试代码7.测试结果8.源码地址实现原理: 通过 DataSourceConfig.java 将ShardingJDBC数据源配置为动态数据源之一。通过 DS(DataSourceConfig.SHARDING_DATA_SOURCE_…

Coinbase Vntures:Web3社交堆栈指南

概述 Web3社交网络赋予用户对其数据、身份和关系的所有权及可移植性,同时支持无需许可的开发。 Web3社交堆栈有四层:托管、社交原语、profile和应用程序。 例如:Farcaster是一款类似twitter的社交应用程序,它创建在开放的社交图…

HTTPS协议的密钥交换流程

前言 HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法。 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在已很少服务器使用。而 ECDHE 算法具有前向安全,所以被广泛使用。 注&#xf…

18 | 如何处理k8s证书过期

目录1 证书过期2 常用命令2.1 使用统一命令查看2.2 查看apiserver.crt证书时间2.3 查看secret2.4 查看ingress3 k8s证书过期处理方法1 证书过期 证书在使用的过程中,通常是一年有效期,到期后,需要重新续期。 2 常用命令 2.1 使用统一命令查…

智慧车行预约小程序,汽车保养、维修、美容、检测预测小程序,前后端完整代码包括车行动态,养车常识,保养预约,维修预约,洗车美容预约

功能介绍 智慧车行小程序,是一个专门为洗车/4S/车辆维修行业打造的小程序,前后端完整代码包括车行动态,养车常识,保养预约,维修预约,洗车美容预约,汽车检测预约等功能,采用腾讯提供的…

分布式锁

目录 1. 模拟高并发场景秒杀下单 1.1 导入依赖 1.2 配置application.yml文件 1.3 场景模拟 1.4 案例演示 2. JVM级锁与redis级分布式锁 2.1 JVM级锁 3. redis级分布式锁 3.1 什么是setnx 3.2 场景分析 4. redisson分布式锁 4.1 什么是Redisson 4.2 Redisson工作原…

有关于decoder中的past_key_values参数

我们都知道,encoder-decoder模型在进行generate的时候,会重复地调用decoder (i.e., auto-regressive)。 也就是,上一个step decoder的预测结果,作为下一个step decoder的输入。 这个时候,由于…

Axios(一) +Promise自定义封装36-42

1. axios 是什么? 1. 前端最流行的 ajax 请求库 2. react/vue 官方都推荐使用 axios 发 ajax 请求 3. 文档: https://github.com/axios/axios 1.2. axios 特点 1. 基于 xhr promise 的异步 ajax 请求库 2. 浏览器端/node 端都可以使用 3. 支持请求/响应拦截器 4…