用于编译源码文件或代码包,编译非命令源码文件不会产生结果文件,它只会检查源码文件的有效性。
指定构建生成的可执行文件或对象的输出目录及可执行文件名。但需要注意的时,当使用-o
标记时,不能同时对多个代码包进行编译。
安装那些编译目标依赖的且未被安装的代码包。
强行对所有涉及到的代码包(包含标准库中的代码包)进行重新构建,即使他们已经是最新的了。
打印编译期间所用到的其他命令,但是并不真正执行它们。
指定编译过程中执行各任务的并行数量(确切的说应该是并发数量)。在默认情况下,该数量等于CPU的逻辑核数。但是在darwin/arm
平台(即iphone和ipad所用的平台)下,该数量默认是1。
开启竞态条件检测。不过此标记目前仅在linux/amd64、freebsd/adm64、darwin/adm64、和windows/amd64平台下受到支持。
打印出那些被编译的代码包的名字。
打印出编译时生成的临时工作目录的路径,并在编译结束时保留它。
打印编译期间所用到的其他命令(注意与-n
的区别)
此标记用于指定编译模式,使用方式如: -buildmode=default
,此标记支持的变异模式有6中。借此我们可以控制编译器在编译完成后生成静态链接库(.a文件)、动态链接库(.os文件)、可执行文件。
此标记用于指定当前使用的编译器的名称。其值可以使gc
或者gccgo
。其中,gc
编译器即为Go语言自带的编译器,而gccgo
编译器则是GCC提供的Go编译器。
此标记用于指定需要传递给gccgo编译器或者链接器的标记的列表
此标记用于指定需要传递给 go tool compile
命令的标记列表
指定一个目录。编译器会只从该目录中加载代码包的归档文件(.a),并把编译可能会生成的代码包归档文件放置在该目录下。
此标签用于指定在编译期间需要手里的编译标签列表。
自定义在编译期间额外执行的命令