4343 2024-03-09 15:09 采纳率: 0%
浏览 47

golang自己包引用失败问题

通过Goland创建了一个项目,在引用自己依赖时候,总是报错,具体情况如下:
自定义的依赖:

img


主程序:

img

运行总是报错:

img


说我的libtest没在标准库里,我把libtest放在/go/src里就是可以,就在GOROOT下的src可以用到,但是放在GOPATH下就引用不到,求网友们解答一下。
这是我的GOPATH路径:

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-09 15:09
    关注

    引自免费微信小程序:皆我百晓生

    在Go语言中,包的引用遵循一定的规则。从你的描述来看,问题可能是由于GOPATH环境变量设置和项目结构不匹配导致的。

    1. 项目结构:你应该将自定义包(libtest)放在符合GOPATH工作空间的目录结构下。比如,如果你的GOPATH/Users/yourname/go,那么自定义包应当放置在如下路径:

      /Users/yourname/go/src/github.com/yourusername/libtest
      
    2. 导入路径:在主程序中引用自定义包时,应使用相对应的导入路径,而非包的实际文件路径。假设按照上述路径放置了libtest包,则在主程序中应这样引用:

      import "github.com/yourusername/libtest"
      
    3. Go Modules:自从Go 1.11引入Go Modules后,推荐使用Go Modules管理依赖。若启用了Go Modules(通常在项目根目录下有一个go.mod文件),则无需关心GOPATH,只需确保正确执行go mod init初始化模块,并使用go buildgo rungo mod tidy等命令让Go自动处理依赖。

    4. Goland配置:如果你使用的是Goland IDE,请确保IDE中的GOPATH设置与实际相符,同时确认已启用Go Modules支持或者设置了正确的源码路径。

    5. 解决方案

      • 确保你已经在libtest包所在的目录执行过go mod init github.com/yourusername/libtest
      • 在主程序项目中,同样执行go mod init yourmainproject,然后通过go get github.com/yourusername/libtest来添加依赖。

    请检查并按照上述建议调整你的项目结构和设置,以便正确引用自定义包。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月9日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题