golang下的GOPATH路径问题及解决

 更新时间:2024年01月19日 16:21:37   作者:骑风追马  
为了方便,我一般使用task来管理项目的编译等事项,由于才入门go,所以碰到一个问题,以此篇为记,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

我需要开发一个组建,所以代码结构没有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

总结

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

相关文章

  • Go语言时间管理利器之深入解析time模块的实战技巧

    Go语言时间管理利器之深入解析time模块的实战技巧

    本文深入解析了Go语言标准库中的time模块,揭示了其高效用法和实用技巧,通过学习time模块的三大核心类型(Time、Duration、Timer/Ticker)以及高频使用场景,开发者可以更好地处理时间相关的任务,感兴趣的朋友一起看看吧
    2025-03-03
  • Go中跨语言实现传输的方法步骤

    Go中跨语言实现传输的方法步骤

    gRPC是Google开源的高性能RPC框架,基于HTTP/2协议和ProtocolBuffers序列化,支持多语言、流式传输和企业级特性,文章详细介绍了gRPC的接口定义语言、服务定义、消息类型、RPC类型以及服务端和客户端的实现方式,需要的朋友可以参考下
    2026-04-04
  • GO语言原生实现文件上传功能

    GO语言原生实现文件上传功能

    这篇文章主要为大家详细介绍了GO语言原生实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Go语言排序算法之插入排序与生成随机数详解

    Go语言排序算法之插入排序与生成随机数详解

    从这篇文章开始将带领大家学习Go语言的经典排序算法,比如插入排序、选择排序、冒泡排序、希尔排序、归并排序、堆排序和快排,二分搜索,外部排序和MapReduce等,本文将先详细介绍插入排序,并给大家分享了go语言生成随机数的方法,下面来一起看看吧。
    2017-11-11
  • Golang流程控制语句的具体使用

    Golang流程控制语句的具体使用

    在编写程序时,流程控制是必不可少的一部分,本文主要介绍了Golang流程控制语句的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • golang使用接口进行灵活缓存

    golang使用接口进行灵活缓存

    缓存是编程中一种常见的技术,通过存储昂贵的计算或 IO 结果来快速查找,从而提高性能,本文将介绍一下Go的接口如何帮助构建灵活、可扩展的缓存,感兴趣的可以了解下
    2023-09-09
  • golang中使用sync.Map的方法

    golang中使用sync.Map的方法

    这篇文章主要介绍了golang中使用sync.Map的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Go1.21新增cmp包的用法详解

    Go1.21新增cmp包的用法详解

    Go 1.21新增的 cmp 包提供了与比较有序值相关的类型和函数,前几篇文章讲解的 slices 包中的函数有大量使用到 cmp 包中的函数和类型,下面我们就来看看cmp包的相关函数用法吧
    2023-08-08
  • Go语言Gin框架前后端分离项目开发实例

    Go语言Gin框架前后端分离项目开发实例

    本文主要介绍了Go语言Gin框架前后端分离项目开发工程化实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • 一篇文章读懂Golang init函数执行顺序

    一篇文章读懂Golang init函数执行顺序

    init()函数会在包被初始化后自动执行,并且在main()函数之前执行,但是需要注意的是init()以及main()函数都是无法被显式调用的,下面这篇文章主要给大家介绍了关于如何通过一篇文章读懂Golang init函数执行顺序的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论