目录
  • 背景
  • 排错分析
  • 问题
  • 解决
  • 总结

背景

我需要开发一个组建,所以代码结构没有src目录,并且项目放在GOPATH路径的src目录下

我在编译二进制文件的时候使用了下面的命令

GOPATH=`pwd` GOBIN=`pwd` go install main.go

编译报错,提示import的类库找不到

排错分析

  • 检查env是否正确 命令:go env,检查结果正常
  • 检查golang的GOPATH和GOROOT配置是否正常,检查通过
  • 分析编译命令找到问题

问题

我在编译的时候重新定义了GOPATH路径。

在go语言编译的时候,它会去找GOPATH和GOROOT下面的src目录。

现在GOROOT=~/gopath/,那么首先编译器到GOROOT下找import的包,如果没有找到,则到GOPATH路径下寻找

此时GOPATH=`pwd`,也就是项目路径,那么它会到项目路径下的src目录下寻找。

由于我没有src目录,所以找不到,从而编译报错

解决

问题其实出在GOPATH下,由于当前项目文件已经处于GOPATH的src下,所以只需要删除GOPATH即可。

正确编译命令:

GOBIN=`pwd` go install main.go

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本网站。

您可能感兴趣的文章:

  • 解析Golang中的GoPath和GoModule
  • 关于Golang获取当前项目绝对路径的问题
  • golang 如何删除二进制文件中的源码路径信息
  • golang 获取当前执行程序路径的操作