go环境 依赖管理 基本命令
Go安装
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
Windows
选择Windows版本下载安装即可。
Linux
选择Linux版本下载
通过删除/usr/local/Go文件夹(如果存在)删除以前的Go安装,然后提取刚下载的压缩包,在/usr/local/Go中创建一个新的Go(-C 解压到指定路径)
$ rm -rf /usr/local/go && tar -C /usr/local -xzf /home/workspace/go1.18.2.linux-amd64.tar.gz
添加环境变量到 $HOME/.profile 或 /etc/profile(系统),既vi $HOME/.profile 或 vi /etc/profile 增加下面一行
i 开始插入
esc 退出插入状态
shift + : 输入 wq ,按 enter 保存退出。
export PATH=$PATH:/usr/local/go/bin
source /etc/profile 获取刚才添加的变量,或重启过后自动获取到。
查看
输入 go version 命令,查看安装的Go版本
go env 查看 go 相关的一些配置
GOROOT和GOPATH
GOROOT 和 GOPATH 都是环境变量,其中 GOROOT 是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为 GOPATH 设置一个默认目录,并且在Go1.14及之后的版本中启用了Go Module模式之后,代码可以不写到GOPATH目录下面的src目录,所以就不需要再自己配置GOPATH了,使用默认的即可。
GOPROXY
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,国内访问不到https://proxy.golang.org,所以换一个PROXY,
使用 https://goproxy.io 或 https://goproxy.cn
go env -w GOPROXY=https://goproxy.cn,direct
GO111MODULE
GO111MODULE=off 不使用 modules 功能。
GO111MODULE=on 使用 modules 功能,不会去 GOPATH 下面查找依赖包。
GO111MODULE=auto Golang 自己检测是不是使用 modules 功能。
go get
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装:第一步是下载源码包,第二步是执行 go install
默认情况下,go get 可以直接使用:go get 地址 。go get下载的依赖包会放到GOPATH 目录下。
go module
go官方自带的go依赖管理库,go module可以将项目下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等。
项目初始化,生成 go.mod 文件
go mod init 项目名称
检测依赖,tidy会检测该文件夹目录下所有引入的依赖,写入 go.mod 文件
go mod tidy
下载依赖,会将依赖全部下载至 GOPATH 下的pkg/mod文件夹中,同时会在项目根目录下生成 go.sum 文件, 该文件是依赖的详细情况。
go mod download
导入依赖,会将下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下,实际不导入也可以。导入了需要添加到git .gitignore名单上。
go mod vendor
go mod init # 初始化go.mod
go mod tidy # 更新依赖文件
go mod download # 下载依赖文件
go mod vendor # 将依赖转移至本地的vendor文件
go mod edit # 手动修改依赖文件
go mod graph # 打印依赖图
go mod verify # 校验依赖
编译
go build 命令表示将源代码编译成可执行文件。
可以项目根目录直接执行,或在其他目录执行,加上项目名称:go build name。
指定编译出来的文件名字:go build -o heiheihei.exe
go run
go run main.go 可以执行程序,该命令本质上也是先编译再执行。
vscode 在打开的main.go文件时直接 F5 也可以运行调试。
Windows编译Linux可执行文件
如果我想在Windows下编译一个Linux下可执行文件,那需要怎么做呢?只需要在编译时指定目标操作系统的平台和处理器架构即可。
注意:无论你在Windows电脑上使用VsCode编辑器还是Goland编辑器,都要注意你使用的终端类型,因为不同的终端下命令不一样!!!目前的Windows通常默认使用的是
PowerShell终端。
如果你的Windows使用的是cmd,那么按如下方式指定环境变量。
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为
$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。
go build
Windows编译Mac可执行文件
Windows下编译Mac平台64位可执行程序:
cmd终端下执行:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
PowerShell终端下执行:
$ENV:CGO_ENABLED=0
$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build
Mac编译Linux可执行文件
Mac电脑编译得到Linux平台64位可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
Mac编译Windows可执行文件
Mac电脑编译得到Windows平台64位可执行程序:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux编译Mac可执行文件
Linux平台下编译Mac平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
Linux编译Windows可执行文件
Linux平台下编译Windows平台64位可执行程序:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
VS CODE
安装go扩展,会提示安装其他工具包,install all,或直接Ctrl+Shift+P (设置>命令面板)输入 go instal,选择 Go:Install/Update Tools这个命令,全勾上安装。
安装很可能失败
gocode-gomod Installing github.com/stamblerre/gocode@latest FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "H:\\Program Files\\Go\\bin\\go.exe get -x -d github.com/stamblerre/gocode@latest",
"stdout": "",
可以手动安装,一个一个安装...
go get github.com/stamblerre/gocode@latest
go install github.com/stamblerre/gocode@latest
go install -v github.com/cweill/gotests/gotests@latest
go install -v github.com/fatih/gomodifytags@latest
go install -v github.com/josharian/impl@latest
go install -v github.com/haya14busa/goplay/cmd/goplay@latest
go install -v github.com/go-delve/delve/cmd/dlv@latest
go install -v honnef.co/go/tools/cmd/staticcheck@latest
go install -v golang.org/x/tools/gopls@latest
安装完成可能需要重启 VS code
终端处选择默认工具,默认是powershell,可以选择为cmd
go环境 依赖管理 基本命令的更多相关文章
- Go依赖管理及Go module使用
Go语言的依赖管理随着版本的更迭正逐渐完善起来. 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面.这就导致了同一个库只能保存一个版本的代码.如果不同 ...
- Go语言之依赖管理
Go语言之依赖管理 Go语言的依赖管理随着版本的更迭正逐渐完善起来. 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面.这就导致了同一个库只能保存一个 ...
- GO学习-(22) Go语言之依赖管理
Go语言之依赖管理 Go语言的依赖管理随着版本的更迭正逐渐完善起来. 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面.这就导致了同一个库只能保存一个 ...
- Go语言系列之依赖管理
依赖管理 为什么需要依赖管理? 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面.这就导致了同一个库只能保存一个版本的代码.如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解 ...
- Composer : php依赖管理工具
原始时代 我记得在当时用php的时候还没有composer,只有个pear,但是不好用呀,还不如直接在互联网上到处复制代码了,更快更不容易出错,当时也没有github这么好的社区工具了 总结如下 代码 ...
- crossplatform---bower解决js的依赖管理
从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...
- Gradle系列教程之依赖管理(转)
转自Lippi-浮生志 :http://ezlippi.com/blog/2015/05/gradle-dependency-management.html 这一章我将介绍Gradle对依赖管理的强大 ...
- Java构建工具:如何用Maven,Gradle和Ant+Ivy进行依赖管理
原文来自:https://zeroturnaround.com/rebellabs/java-build-tools-how-dependency-management-works-with-mave ...
- bower解决js的依赖管理
bower解决js的依赖管理 前言: 一个新的web项目开始,我们总是很自然地去下载需要用到的js类库文件,比如jQuery,去官网下载名为jquery-1.10.2.min.js文件,放到我们的项目 ...
- Composer PHP 依赖管理工具
composer 是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件. 依赖管理 ...
随机推荐
- Redis哨兵集群搭建-Docker-Compose
title: Redis哨兵集群搭建(Docker-Compose) date: 2022-09-27 17:00:56 tags: - Redis 代码地址:https://github.com/l ...
- 请务必注意精度不一样,就不相等(float 与double)
即使两个小数显示的值是一样的,但是类型不一要样,精度不一样实际上是不一样的 就比如下面这段代码: #include <iostream> #include <cstring> ...
- StringBuilder类-toString方法
StringBuilder类 构造方法 StringBuilder();创建一个空的字符串缓冲区对象StringBuilder(String s);根据传入的内容创建一个字符串缓冲区对象 成员方法 S ...
- Spring Security Form表单认证代码实例
Spring Security Form表单认证 Spring Security中,常见的认证方式可以分为HTTP层面和表单层面,如下: HTTP基本认证 Form表单认证 HTTP摘要认证 Spri ...
- 行为型模式 - 命令模式Command
模式的定义与特点 命令模式(Command Pattern),是将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化.命令模式是把发出命令的责任和执行命令的责任分割开,委派给不同的对象. ...
- 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录
文章介绍 本文主要描述在 T507 Android 10 Linux 4.9 平台下,调试 SGM58031 芯片的记录,实现单芯片实时采集外部四通道的电压数值. 芯片介绍 SGM58031 是一款低 ...
- 【单片机】nRF52832 实现停止蓝牙广播接口
前言 有一个项目使用了 nRF52832 芯片作为主控,其中有用到蓝牙功能.在对蓝牙接口进一步封装的时候,发现 SDK 居然没有停止广播的接口,咨询了代理 FAE,对方也没有找到关闭广播的接口.后来通 ...
- 微信小程序搜索优化指南(SEO)
前言 其实在 2019 年上半年,微信就发布了基于小程序页面的搜索. 为了更好地发现及理解小程序的页面,结合过去一段时间来我们遇到的各种情况,强烈建议各位开发者花一些宝贵的时间认真阅读本文. 小程序爬 ...
- Nacos配置中心 (介绍与配置)
Nacos配置中心 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一种统一配置管理方案,可以集中管理所有实例的配置. Nacos一方面可以将配置 ...
- FineUI通过js事件条用后台方法实现弹窗
一.html标签的onclick事件 <button type="button" class="btnUpdate" onclick="< ...