Go 学习 (二) Go 项目基本工程管理

1.应用场景

学习 Go 项目基本工程管理, 继续学习了解go

2.学习/操作

Windows 10 64位

vscode

go 1.14

2.1 工程管理概述

Go 学习 (一) 第一个go程序 中搭建起了本地开发环境,并且编写了第一个 Go 程序,向世界问好。

不过在实际开发过程中,直接调用编译器进行编译和链接(调用 go buildgo run 命令)的场景很少,因为在项目工程中不会简单到只有一个源文件,往往有很多源文件并且源文件之间会有相互依赖的关系,如果这样一个文件一个文件逐步编译,那简直无法想象。

Go 语言的设计者作为行业老将,自然不会忽略这一点。说到这里,我们来看看 Go 语言的主要设计者都是何方神圣:

个顶个的都是大神级人物。早期 Go 语言使用 makefile 作为临时方案,到了 Go 1 发布时引入了强大无比的 Go 命令行工具,Go 命令行工具彻底消除了工程文件的概念,完全用目录结构和包名来推导工程结构和构建顺序。

想想 C 语言编译、链接和安装可执行程序的繁琐步骤,首先要通过 configure 脚本对特定平台进行检测,比如是否包含 GCC 等编译工具,然后生成 Makefile 文件,该文件定义了编译、链接规则,为下一步编译工作做准备,接下来就是执行 make 命令进行编译工作,最后再执行 make install 命令完成应用程序的安装,经历过这些步骤才可以实现将 C 程序源代码编译为可执行程序。

与之相比,Go 语言则要简单的多,针对只有一个源文件的情况(如上篇教程所示),引入工程管理看起来比较多余,因为直接用 go rungo build 搞定,下面我们通过 Go 语言构建一个简单的计算器项目来演示 Go 语言的基本工程管理方法。

2.2 这里以 编写计算器工程源码 项目为例

具体代码见下方链接  ---- 编写计算器工程源码 很详细

https://xueyuanjun.com/post/19712

本地截图

备注:

同时新建.go文件时, vscode会提醒安装go插件

点击 '安装'即可

如果书写go 换行错误错误,保存,则会提示安装 goreturns插件

点击 'Install' 即可.

这里可以先不用'Install All', 后面在操作

补充:

这里我点击了 'Install All', 但是安装基本都是失败

失败原因:

应该是网络无法访问导致

解决办法:

方式一:

能够访问google. //这里使用了代理

方式二:

TBD [是否能配置新的进行地址]

2.3 配置 GOPATH 环境变量

Windows下:

通过配置环境变量 GOPATH 来实现,将你的项目根目录完整路径拷贝过去就好 了。

PATH 环境变量一样,GOPATH 也可以支持一次配置多个路径,并且路径和路径之间用冒号分隔。

GOPATH 的用处是 Go 语言在编译程序时,会从 GOPATH 配置的路径里面去查找源文件并完成构建。

Linux下或者GoLand, 查看

https://xueyuanjun.com/post/19712   // 配置 GOPATH 环境变量

查看go 相关变量

go env

2.4 构建 Go 工程

设置完 GOPATH 后,现在我们开始构建工程。假设我们希望把生成的可执行文件放到 calc/bin 目录中,需要执行的一系列指令如下:

cd ~/go/calc
mkdir bin
cd bin
go build calc

这样就会在 calc/bin 目录下生成可执行文件 calc

然后我们就可以执行 calc 程序了:

运行成功

这就是为什么说 Go 命令行工具是非常强大的。

我们不需要写 makefile,因为这个工具会替我们分析,知道目标代码的编译结果应该是一个包还是一个可执行文件,并分析 import 语句以了解包的依赖关系,从而在编译 calc.go 之前先把依赖的 simplemath 编译打包好。

Go 命令行程序制定的目录结构规则让代码管理变得非常简单。

当然,这里只是一个最简单、最基本工程管理的构建示例,后面我们还会就更复杂的工程项目管理进行介绍,比如工程组织、文档与代码风格、跨平台开发、单元测试、打包分发等.

后续补充

...

3.问题/补充

1.go build calc 编译出现报错:

can't load package: package calc: cannot find package "calc" in any of:  ...

解决办法:

但是, 依然报错

只好暂时先使用下面方式

在新开发cmd窗口中, 执行go builg calc

执行程序:

运行提示正常.

如果依然没有解决, 重启电脑试试.

还有一个原因:

保证拼写没有错误, 这里就犯了这个错误, 找了好久才发现.

2.常见的go标准库

  gocode

  gopkgs

  go-outline

  go-symbols

  guru

  gorename

  gotests

  gomodifytags

  impl

  fillstruct

  goplay

  godoctor

  dlv

  gocode-gomod

  godef

  goreturns

  golint

4.参考

https://xueyuanjun.com/post/19712 //零基础入门(二) —— Go 项目基本工程管理示例

https://github.com/golang/go/wiki/SettingGOPATH#windows-10-command-line  //配置GOPATH

后续补充

...

发布了456 篇原创文章 · 获赞 44 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/william_n/article/details/105596346
今日推荐