美文网首页
Golang一些编译学习探讨

Golang一些编译学习探讨

作者: 盈朔 | 来源:发表于2020-02-24 13:18 被阅读0次

问题一:能介绍一下golang的包的概念么?

答:golang程序是通过编译package来生成对应的可执行程序的,编译的入口就是main::main()。包分为两类,一类纪实可执行的包,就是你创建项目之后main.go。另一种是工具包。工具包自身是不可执行的,但是它会给可执行的包增加一些功能,从而起到扩展主应用的作用。当一个包被引用的时候,GO会使用包的声明把这个包创建为全局变量。在go中,一个包就是一个目录。

问题二:介绍一下goroot路径的作用呗?

答:goroot为go的安装路径,当安装完成了之后,他的作用就是goroot的src路径下为标准库的源码。他的第二个作用就是当执行go run. Go build go install命令的时候,需要去查找工具包的时候,会先在goroot目录下面查找.

问题三:介绍一下gopath路径的作用呗?

答:golang的工作路径,可以有多个项目工作路径,直接用;分开就好。当我们执行go build或者go install命令的时候,会先从goroot目录下查找。当没有查找到,那么就会再次从gopath目录下进行查找。当都没有查找到的时候,就会抛异常。

问题四:一个关于go build的问题?

介绍:如果你想编译你的go程序,需要到对应的项目文件夹内,执行对应的go build。如果我没有main.go文件,但是我有一个新的文件名。里面仍然是package main.  Func main(){}.那么执行也是应该没有问题。或者我可以直接在这个项目内go build +有package main的文件名。也是能编译过的。就是go build他是怎么找入口的尼。如果没给参数。

问题五:go build和go install之间什么区别?

答:go build如果是有main:main的文件项目会生成一个二进制文件在当前目录下面。如果不是命令源文件就只是预编译一下,帮你去找找错误。go install会帮你安装到对应gopath下面的bin文件内。其他的操作和go build都差不多。

问题六:介绍一下go test命令呗?

答:通俗点说当你想对一些库文件想要进行测试一下的时候定义一个***_test.go的文件。里面定义好对应的调用测试函数。然后执行对应的go test加对应的函数名称就可以进行对应的测试。这个命令主要的作用就是方便你去测试一下你的代码是否可以。不用重新自己去写一个测试程序了。

问题七:介绍一个go run命令呗?

答:该命令可以直接的运行go命令源文件。并得到对应的结果。但是如果命令源文件中因为其他包,他仍然是需要从goroot和gopath目录下面去寻找的。但是只有一个命令源文件就不会有问题。

我个人感觉这个命令就是方便你想写一个测试的go例子。一个文件就可以搞定了。那么就不需要从头去搭建对应的工程开始了。

问题八:能说一下go源码到应用程序的过程么?

答:对于这个问题,我也只是知道一个大概,就是go 源代码文件会先合成一个中间文件。然后通过链接合成应用程序。这个链接应该就是go标准库或go提供的一下东西吧。和c/c++很像。c/c++需要经过预编译,汇编,链接。应用程序。

相关文章

  • Golang一些编译学习探讨

    问题一:能介绍一下golang的包的概念么? 答:golang程序是通过编译package来生成对应的可执行程序的...

  • Golang聚合

    教程 Go Web 编程Go语言圣经(中文版) Tips Golang 学习笔记——交叉编译 & 部署Golang...

  • Golang 交叉编译

    [TOC] 说明 本文交叉编译需要 1.5 以上 Golang Mac 下编译 windows 64 Golang...

  • golang进行交叉编译

    golang进行交叉编译 交叉编译即编译不同操作系统平台的可执行程序 golang执行交叉编译,只需要使用两个变量...

  • go如何进行交叉编译

    golang交叉编译 问题 golang如何在一个平台编译另外一个平台可以执行的文件。比如在mac上编译Windo...

  • Flutter环境配置

    Flutter、Golang、Python、编译原理、算法、Chrome原理学习系列文章抢先看请关注【码农帮派】:...

  • 关于Go 2.0

    最近比较系统的重新学习了一遍golang。发现Go语言的一些优点和缺点。 优点如下, 作为编译型语言,有一个...

  • Golang学习笔记-交叉编译

    Golang从1.5版本起支持交叉编译,可以在一个平台上生成另一个平台的可执行程序,非常方便,交叉编译依赖于环境变...

  • Golang 隐藏技能 -- 编译指令

    类似C++中的 #pragma pack(2),Golang中也有一些编译指令。它们的实现方式是一些特殊的注释。 ...

  • go 语言学习

    Golang 在 Mac、Linux、Windows 下如何交叉编译 Mac 下编译 Linux 和 Window...

网友评论

      本文标题:Golang一些编译学习探讨

      本文链接:https://www.haomeiwen.com/subject/cgtvqhtx.html