• 51272

    文章

  • 499

    评论

  • 40

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

go run go build go install 命令解释

695856371Web网页设计师②群 | 172816590(满)Web网页设计师①群, 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

  • go run:go run 编译并直接运行程序,它会产生一个临时文件(但不会生成 .exe 文件),直接在命令行输出程序执行结果,方便用户调试。

  • go build:go build 用于测试编译包,主要检查是否会有编译错误,如果是一个可执行文件的源码(即是 main 包),就会直接生成一个可执行文件。

  • go install:go install 的作用有两步:第一步是编译导入的包文件,所有导入的包文件编译完才会编译主程序;第二步是将编译后生成的可执行文件放到 bin 目录下($GOPATH/bin),编译后的包文件放到 pkg 目录下($GOPATH/pkg)。


go build与go install的

用法:

 go build/install <packages>

说明:<package>是从$GOPATH/src路径下面的目录名

如:

# 编译安装package lib
go install lib

多个包名

# 同时编译安装lib2和lib/util两个package
go install lib2 lib/util

另外,如果当前工作路径已经在package目录下面了,则可以不需要指定package名,例如:

$ cd $GOPATH/lib/util
$ go install

功能:

  1. build

对于库,只是验证编译能够成功,不会生成目标库文件。

对于可执行程序,会生成目标可执行文件,并放在当前目录下面。

  1. install

对于库,会生成目标库文件,并且放置到GOPATH/;对于可执行文件,会生成目标可执行文件,且放到GOPATH/BIN目录下。

install 生成的包文件,其包名是以目录名命名的。

结论

  • 对于含主函数的go文件,go build 和 go install 都能成功编译它们并生成可执行文件,就是生成的可执行文件的地方不一样

  • 对于不含主函数的go的包文件,只有 go install 能在pkg中生成包文件,而 go build 能对go的包文件起作用,就是最终文件夹和执行 go build 之前一样,好像 go build 什么也没做,很迷。

go install 与 go build, 都可以生成可执行文件(生成的位置不同,install生成在GOPATH/BIN下,而build生成在当前目录下);go install 能生成包文件(GOPATH/PKG下,包名和目录名同名),但 go build 不能生成包文件

如何区分库和可执行程序目录

go编译器如何区分这是一个库目录还是一个可执行文件目录,因为库目录需要安装到GOPATH/pkg路径下面,可执行程序需要安装到GOPATH/bin路径下面。规则就是:

  • 这个目录的包名字是不是main。如果是,则go认为这是一个可执行程序目录;如果不是,go就认为这是一个库目录

注意:这里包名并不是目录名,和不和路径相关,也就是说不管是项目顶级目录下的main,还是某个路径下面的main,例如lib/main都认为是main,只要代码层面的名字是main,即是可执行程序。

这里强调一点:

  • 包对应一个目录,并不包含路径信息。

  • 包只包含一个目录下面的文件,并不包含子目录。

即,每一个目录都是独立编译成一个包文件的,这个包文件并不包含目录下面的子目录,因为子目录是另一个独立的包,需要独立编译;文件路径上的包含关系并没有包之间的包含关系,包没有路径递归这个属性。

库的使用

关于库的使用,即在编译可执行文件时如何使用库文件,是使用的pkg目录下的编译好的库.a文件,还是src目录下面的库源文件,请参考下面文件链接(谢AllenRen_061d同学指正)。


 转载至链接:https://my.oschina.net/u/3683692/blog/3037320。


转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

您觉喜欢本网站,或者觉得本文章对您有帮助,那么可以选择打赏。
打赏多少,您高兴就行,谢谢您对梁钟霖这小子的支持! ~(@^_^@)~

  • 微信扫一扫

  • 支付宝扫一扫

    支付宝打赏

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客