
Go install 命令行为差异探究
本文分析 go install 命令在处理单个 Go 文件和多个 Go 文件时的不同输出结果。
场景一:单个 Go 文件
-
普通包文件:
go install将编译该文件,并在pkg目录下生成对应的.a文件(归档文件,即静态库)。 -
包含
main函数的文件:go install将编译该文件,并在bin目录下生成对应的可执行文件(例如.exe)。
结果差异的原因: go install 根据文件类型和内容(是否包含 main 函数)来决定编译目标。包文件编译成静态库以便复用,而包含 main 函数的文件则编译成可执行程序。
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统
场景二:多个 Go 文件
前提条件:这些 Go 文件必须属于同一个包(即包名相同)。go install 将编译所有这些文件,并将结果整合到一个单一的 .a 文件中,形成完整的包。








