Go源码文件与命令

Go源码文件

文件类型

  1. 命令源码文件 : 声明自己属于main包且包含main函数的源码文件,一个包里边不要有多个命令源码文件,虽然用go install ,go run单独执行命令源码文件没有问题,但go install ,go run包含命令源码文件的文件夹时会出错。

  2. 库源码文件: 不具备命令源码文件两个特征的源码文件,也就是存在与某个包的普通源码文件。库源码文件安装后,相应的归档文件(*.a)被存放在当前工作区的pkg目录下。

  3. 测试源码文件:名称以_test.go为后缀的源码文件,且必须包含Test或Beanchmark为名称前缀的函数。

    //功能测试
    func Test****(t *testing.T){
    
    }
    
    //性能测试
    func Beanchmark(b *testing.B){
    
    }

常用命令

命令 说明
go build
go get
go install
go run 只能执行命令源码文件。
go help 查看常用命令
参数 说明
-a 用于强制重新编译所有涉及的Go代码包(包括GO标准库中的代码包),几十他们已经是最新的了。该标记可以让我们有机会通过改动底层代码包做一些实验
-n 使命令打印执行过程中用到的所有命令,而不去真正执行他们。如果只是想查看或验证命令的执行过程,又不想改变任何东西,使用这个参数最合适。
-race 用于检测并报告指定Go程序中的数据竞争问题。
-v 用于打印命令执行过程中涉及的代码包。这一定包括我们指定的目标代码包,有时还包括该代码包直接或间接依赖的那些代码包。这会让我们看到那些代码包被执行过。
-work 用于打印命令执行时生成和使用的临时工作目录名字,且命令执行完后不删除它。如果不添加此标记,临时工作目录会在命令执行完后被删除。
-x 打印命令执行过程中用到的所有命令,并同时执行他们。

go run

  1. 在临时工作目录下生成了归档文件和可执行文件
  2. 如果使用go run -work保留了临时工作目录,再次执行go run时,如果命令源码文件没有变化,就不会再执行compile.exe

go build

主要用于测试编译。编译过程中,如果有必要会同时编译与之关联的包

  1. 如果是普通包,执行go build不会产生任何文件
  2. 如果是mian包,会在mian包下生成可执行文件。使用go build -o 路径,可在指定目录下生成可执行文件。
  3. go build会编译目录下所有的go文件,go build go文件可以只编译某个文件。
  4. 通过go build -o 可执行文件名 方式生成指定名字的可执行文件。默认情况下是package名(非main包)或者文件夹名(main包)
  5. go build 会忽略以_或.开头的go文件

猜你喜欢

转载自www.cnblogs.com/henryno12/p/12301799.html