首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Mac上安装Delve Go Debugger

无法在Mac上安装Delve Go Debugger
EN

Stack Overflow用户
提问于 2019-11-30 04:50:12
回答 2查看 2.5K关注 0票数 5

我正在尝试遵循下面的YouTube video来开始Go调试。

它建议遵循官方Delve github存储库上的Delve安装说明。对于Mac用户来说,他们是as follows

确保工具链已就位

代码语言:javascript
复制
xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

使用go get安装Delve

代码语言:javascript
复制
go get -u github.com/go-delve/delve/cmd/dlv

确保在Xcode中启用了开发人员模式

代码语言:javascript
复制
sudo /usr/sbin/DevToolsSecurity -enable
Developer mode is already enabled.

为了检查安装是否正确完成,我尝试在我的Go项目中直接运行以下命令:

代码语言:javascript
复制
dlv debug
zsh: command not found: dlv

视频教程的作者建议在命令无法识别的情况下更新~/.bash_profile文件中的GOPATH和PATH变量。为此,我添加了以下内容:

代码语言:javascript
复制
export GOPATH=/Users/<user_name>/go/src/
export PATH=$PATH:/Users/<user_name/go/src/my_project

然而,即使在这样做之后,我在尝试运行调试器时也得到了相同的结果:

代码语言:javascript
复制
dlv debug
zsh: command not found: dlv

即使我使用exec bash将默认zsh的外壳更改为bash,我也会得到相同的结果。

EN

回答 2

Stack Overflow用户

发布于 2019-11-30 05:02:58

为了运行可执行文件,它需要在您的PATH中可用。

1.配置您的路径。

确保在shell环境中正确设置了GOPATH$GOPATH/bin目录。您可以通过将以下行添加到shell配置中来完成此操作。

如果您使用的是zsh,则为~/.zshrc

如果您使用的是bash,则为~/.bash_profile

代码语言:javascript
复制
export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"

2.重新加载外壳配置。

确保在更改后重新启动shell或在shell配置文件上运行source

如果您使用的是zsh,则为source ~/.zshrc

如果您使用的是bash,则为source ~/.bash_profile

3.安装 dlv 包。

代码语言:javascript
复制
go install github.com/go-delve/delve/cmd/dlv

这里假设你使用/Users/<username>/go作为你的GOPATH

现在您应该能够从终端会话运行dlv了。

祝好运!

票数 12
EN

Stack Overflow用户

发布于 2019-12-06 22:04:24

将环境变量GOBIN设置为您希望安装dlv二进制文件的位置。

例如:

代码语言:javascript
复制
GOBIN=~/bin go install github.com/go-delve/delve/cmd/dlv

这将在~/bin中安装dlv

澄清

运行go install时,可以通过设置GOBIN环境变量来指定安装路径。

有两种方法可以设置环境变量:

1)在运行go install ..之前运行export GOBIN=<SOMETHING>

代码语言:javascript
复制
$ export GOBIN="$HOME/bin"
$ go install github.com/go-delve/delve/cmd/dlv

export命令将改变当前终端会话中的环境。以后执行的任何命令都将看到您为GOBIN设置的值

当您采用这种方法时,您通常希望该环境变量不仅在此会话中处于活动状态,而且在将来的所有会话中也处于活动状态。因此,最好将该行添加到您的bash配置文件中。

2)仅为命令设置环境变量。

代码语言:javascript
复制
$ A=10 some-command

在这种情况下,some-command将看到环境变量A的值设置为'10‘。如果您运行以后的命令,它将不会看到此值。

当您只是在尝试一些东西时,或者如果您只想在某些情况下设置某些环境变量,这种方法很有用。

我提供的作为答案的命令行遵循第二种方法。

它将GOBIN变量设置为~/bin目录,然后在同一行中调用go install。这样,此go install调用将在~/bin中安装dlv

当然,这假设您的主目录中有一个bin目录。

如果你没有这样的目录,那么这将不起作用。

这个想法不是按原样复制粘贴行。其想法是将~/bin更改为您希望安装dlv二进制文件的目录。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59110828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档