问题报错:go tool: no such tool “link”
问题描述:在写代码的时候,go run
了几次之后直接报错go tool 没有工具link 了。
go tool link 的作用是:link(通常作为“go tool link”调用)读取包主目录的Go归档文件或对象及其依赖项,并将其组合到可执行二进制文件中。
链接不同的package的.a文件,输出可执行文件。
偶然看一下防毒软件,发现就在刚刚link.exe 被杀毒软件给隔离了
推测可能是我go run 执行的太频繁了,go tool 编译可执行文件,被杀毒软件检测可能是病毒了,误会一场。
然后把我的link.exe 从隔离区域放出来,就好啦!
正常编译!
顺便把查找原因过程中的go tool 功能摘录一下:
-
go tool asm file 将go汇编文件编译为 object(.o) 文件。
-
go tool compile file 将go文件编译为 .o 文件。
-
go tool compile -N -l -S file 将文件编译为汇编代码
或者使用:go build -gcflags -S x.go
gcflags == go compile flags
-
go tool compile:处理go文件,执行词法分析、语法分析、汇编、编译,输出obj文件
-
go tool asm:处理汇编文件(.s文件),输出obj文件
-
go tool pack:打包package下的所有obj文件,输出.a文件
-
go tool link:链接不同package的.a文件,输出可执行文件
-
go tool objdump:反汇编obj文件
-
go tool nm:输出obj文件、.a文件或可执行文件中定义的符号
obj文件
- go tool nm:输出obj文件、.a文件或可执行文件中定义的符号