go 语言unexpected directory layout问题解决

一、确保路径设置正确

项目的目录结构有问题。建议结构:

project:
  - bin (可不需要)
  - src
    - sub-project-1
      - module1
      - module2
      - vendor
    - sub-project-2
  - pkg (可不需要)

并将project目录 追加 到环境变量GOPATH中。GOPATH中只保存一个路径

  • 设置环境变量GOPATH 方法一
vim /etc/profile
##编辑器中首行填写如下内容,GOPATH和GOROOT根据读者自己情况修改
export GOPATH=/root/go
export GOROOT=/usr/lib/golang
export PATH=$GOPATH/bin:$PATH
##wq保存退出文件,并执行
source /etc/profile
  • 设置环境变量GOPATH 方法二
go env -w GOPATH=/root/go

二、查看是否有重复文件夹

在centos目录下,即GOROOT目录中,发现src/中有与GOPATH中项目相同的目录文件,删除其之后,再重新编译GOPATH中项目,即可解决问题。其中XXX表示编译工程项目。

rm -rf /usr/lib/golang/src/XXX

《go 语言unexpected directory layout问题解决》有2个想法

  1. 大佬求助,我运行go项目遇到这个问题。我的import都是能找到的,函数也能找到调用。main如果里面写得很简单就一句输出就没问题,但是如果有用到一些包的引用就会出这个错误?咋办啊。。。欢迎联系qq:120684310(平时不打扰仅咨询 万分感谢
    unexpected directory layout:
    import path: _/E_/Go-workspace/src/sProject/sm3
    root: E:\Go-workspace\src
    dir: E:\Go-workspace\src\sProject\sm3
    expand root: E:\Go-workspace
    expand dir: E:\Go-workspace\src\sProject\sm3
    separator: \

    1. 你是用的windows系统吗?那个编译的话,最好用powershell工具。你这个应该是GOPATH路径设置问题,import path: _/E_/Go-workspace/src/sProject/sm3, 这个里面最前面多了个下划线

发表评论

邮箱地址不会被公开。 必填项已用*标注