ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Go 安装、编译、运行

2021-07-16 23:34:00  阅读:180  来源: 互联网

标签:GOPATH 源文件 编译 go Go 安装 目录


安装

Go语言官网下载对应版本的的安装包(https://golang.google.cn/dl/


更改GOPATH

视频
如果想要构建一个项目,就需要将这个项目的目录添加到 GOPATH 中,多个项目之间可以使用;分隔。

如果不配置 GOPATH,即使处于同一目录,代码之间也无法通过绝对路径相互调用。

1.创建一个文件夹(存放编写的Go语言代码)

我的路径是 E:\goData

2.将环境变量里的GOPATH改为自己的路径

在这里插入图片描述
上图环境变量中的 %USERPROFILE%\go 是默认路径,修改为自己的路径
在这里插入图片描述

3.在E:\goData下创建三个文件夹
  • src 目录:放置项目和库的源文件;
  • pkg 目录:放置编译后生成的包/库的归档文件;
  • bin 目录:放置编译后生成的可执行文件。
    更多
4.将bin路径加入path环境变量中

在这里插入图片描述

5.查看go的环境变量

go env
在这里插入图片描述

项目命名

在src目录下,一般按域名,作者名,项目名,模块名的顺序来命名
在这里插入图片描述

源文件

命令源文件:

如果一个 Go 源文件被声明属于 main 包,并且该文件中包含 main 函数,则它就是命令源码文件。命令源文件属于程序的入口,可以通过Go语言的go run 命令运行或者通过go build 命令生成可执行文件。

库源文件:

库源文件则是指存在于某个包中的普通源文件,并且库源文件中不包含 main 函数。

不管是命令源文件还是库源文件,在同一个目录下的所有源文件,其所属包的名称必须一致的。

编辑器

下载安装 VS code

安装Go的扩展
在这里插入图片描述


运行第一个Go

在这里插入图片描述
如果此时VS Code右下角弹出提示让你安装插件,务必点 install all 进行安装。

如果文件包名报错:

go: go.mod file not found in current directory or any parent directory; see 'go help modules'

查看环境
在这里插入图片描述
将这里的GO111MODULE设置为auto即可

在这里插入图片描述


编译运行程序
  1. 在文件目录中使用

     go  build  
    

编译代码,生成二进制可执行文件
在这里插入图片描述
注意:如果有多个go文件,就需要加上编译的文件名,用“,”分隔开


  1. 指定程序名

      go build -o 程序名
    

在这里插入图片描述

  1. 直接运行文件

     go run 文件名
    

在这里插入图片描述
编译文件,不生成可执行文件,直接运行临时文件

  1. 编译并安装

     go install
    

第一步是生成结果文件(可执行文件或者 .a 包),第二步会把编译好的结果移到 $GOPATH/pkg 或者 $GOPATH/bin。

  • go install 是建立在 GOPATH 上的,无法在独立的目录里使用 go install。
  • GOPATH 下的 bin 目录放置的是使用 go install 生成的可执行文件,可执行文件的名称来自于编译时的包名。
  • go install 输出目录始终为 GOPATH 下的 bin 目录,无法使用-o附加参数进行自定义。
  • OPATH 下的 pkg 目录放置的是编译期间的中间文件。


跨平台编译

可在windows平台编译可在linux平台运行的程序

设置go的环境变量

以cmd中为例

	SET CGO_ENABLED=0			//禁用CGO,1为启用
	SET	GOOS=linux				//Linux平台为linux,Mac平台为darwin,Windows为windows
	SET	GOARCH=amd64			// 处理器架构

go build 编译:
在这里插入图片描述
此时生成的learn文件,就可在linux中运行了

如果使用的是PowerShell终端,那么设置环境变量的语法为 $ENV:CGO_ENABLED=0

在其他平台也是只需要将上面的 cgo_enabled=0goos设置为对应的系统,最后选择对应的系统架构,即可

标签:GOPATH,源文件,编译,go,Go,安装,目录
来源: https://blog.csdn.net/weixin_45286211/article/details/118568495

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有