macOS 10.13.3下Golang开发环境配置指南

macOS 10.13.3下Golang开发环境配置指南 大家好! 请帮帮我。 我使用的是全新的macOS 10.13.3系统

  1. 安装brew
  2. 执行brew install go
  3. 测试go环境 - 打开终端 - 执行"go env"命令显示: GOPATH = /Users/user/go 当在终端执行命令: export GOPATH=/Users/user/GoProj
  • 此时go env显示GOPATH=/Users/user/GoProj 但当我打开新的终端会话时,go env结果又变回GOPATH = /Users/user/go

当我在GOPATH=/Users/user/GoProj文件夹中打开来自github的myproj项目时,像"fmt"这样的golang库无法使用

而且在/user文件夹下不存在~/.bash_profile 当我创建了包含当前GOROOT和GOPATH的配置文件后,终端中的所有命令都无法使用,比如: sudo nano 等等

如何正确设置GOPATH或创建新的当前./bash_profile? 非常感谢!


更多关于macOS 10.13.3下Golang开发环境配置指南的实战教程也可以访问 https://www.itying.com/category-94-b0.html

5 回复

库文件存储在项目文件夹之外,但我对 IntelliJ 不太熟悉。

更多关于macOS 10.13.3下Golang开发环境配置指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


将此内容添加到 ~/.bash_profile 文件中:

export GOROOT=$(go env GOROOT)
export GOPATH=$(go env GOPATH)
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

然后重新打开终端。

在 ~/go 目录下需要创建 src 子文件夹,然后创建你的项目文件夹,比如 GoProj。

根据IntelliJ的启动方式不同,它可能无法获取.bash_profile中的变量。

该文件中设置的变量仅在bash及其子进程中可见。因此只有当IntelliJ从bash启动时,它才能识别修改后的变量。

如果从图形界面启动,它将继承该环境的环境变量。

另外,回想我以前使用IntelliJ(用于其他语言)的时候,他们经常忽略环境中的设置,而是让您为每个项目选择一个"SDK"。尽管该字段标记为SDK,但它实际上指的是用于任何语言的编译器和标准库版本。

全部完成
但在IntelliJ IDEA中,所有Go语言库在项目中都不可见
执行"清除缓存并重启"操作后仍无变化

screen

项目中的依赖项通过glide工具存放在vendor文件夹中
当在IDEA中开启"启用vendoring"设置后,项目能识别依赖项
但所有标准Go库仍然无法识别

在macOS 10.13.3上配置Golang环境时,需要正确设置环境变量。以下是解决方案:

1. 创建并配置.bash_profile文件:

# 在终端中执行
cd ~
touch .bash_profile
open -e .bash_profile

2. 在.bash_profile中添加以下内容:

export GOROOT=/usr/local/opt/go/libexec
export GOPATH=$HOME/GoProj
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

3. 使配置立即生效:

source ~/.bash_profile

4. 验证配置:

go env GOPATH
go env GOROOT

5. 项目结构示例:/Users/user/GoProj目录下创建标准Go工作空间:

mkdir -p $GOPATH/src/github.com/yourusername/myproj
cd $GOPATH/src/github.com/yourusername/myproj

6. 测试项目: 创建测试文件main.go

package main

import "fmt"

func main() {
    fmt.Println("Go环境配置成功!")
}

运行测试:

go run main.go

7. 如果使用较新版本的Go(1.13+),可以启用Go Modules:

go env -w GO111MODULE=on

这样设置后,每次打开新终端会话都会自动加载正确的GOPATH。确保项目文件位于$GOPATH/src下的正确路径中,Go工具链就能正常识别标准库和第三方包。

回到顶部