英文:
fatal error: 'dirent.h' file not found when trying to install gopls/Go tools via Visual Studio Code
问题
我正在尝试在Visual Studio Code中安装Go工具,但在安装gopls时遇到以下错误:
Tools environment: GOPATH=/Users/jal/go
Installing 1 tool at /Users/jal/go/bin in module mode.
gopls
Installing golang.org/x/tools/gopls@latest FAILED
{
"killed": false,
"code": 2,
"signal": null,
"cmd": "/opt/brew/bin/go install -v golang.org/x/tools/gopls@latest",
"stdout": "",
"stderr": "golang.org/x/tools/internal/fastwalk\n# golang.org/x/tools/internal/fastwalk\n../../go/pkg/mod/golang.org/x/tools@v0.2.1-0.20221101170700-b5bc717366b2/internal/fastwalk/fastwalk_darwin.go:11:10: fatal error: 'dirent.h' file not found\n#include <dirent.h>\n ^~~~~~~~~~\n1 error generated.\n"
}
1 tools failed to install.
gopls: failed to install gopls(golang.org/x/tools/gopls@latest): Error: Command failed: /opt/brew/bin/go install -v golang.org/x/tools/gopls@latest
golang.org/x/tools/internal/fastwalk
# golang.org/x/tools/internal/fastwalk
../../go/pkg/mod/golang.org/x/tools@v0.2.1-0.20221101170700-b5bc717366b2/internal/fastwalk/fastwalk_darwin.go:11:10: fatal error: 'dirent.h' file not found
#include <dirent.h>
^~~~~~~~~~
1 error generated.
我知道我有dirent.h
,因为当运行find / -iregex ".*/dirent.h$" 2>/dev/null
时,我在本地的Xcode SDK中看到结果。
我按照这里的步骤进行操作:https://learn.microsoft.com/en-us/azure/developer/go/configure-visual-studio-code
我的设置如下:
- 通过Homebrew进行全新安装的go
- 通过go.dev/doc/install进行全新安装的VSCode macOS
- 安装Go插件
- 在命令面板中,搜索并选择"Go: Install/Update tools",然后在下拉菜单中选择所有工具
除了gopls之外,所有工具都成功安装。我已经通过Homebrew安装了go,并且还通过Homebrew安装了gopls,但不确定如何配置VSCode以指向这个替代的gopls路径。
英文:
I am trying to install the Go tools in Visual Studio Code and am getting the following error when installing gopls:
Tools environment: GOPATH=/Users/jal/go
Installing 1 tool at /Users/jal/go/bin in module mode.
gopls
Installing golang.org/x/tools/gopls@latest FAILED
{
"killed": false,
"code": 2,
"signal": null,
"cmd": "/opt/brew/bin/go install -v golang.org/x/tools/gopls@latest",
"stdout": "",
"stderr": "golang.org/x/tools/internal/fastwalk\n# golang.org/x/tools/internal/fastwalk\n../../go/pkg/mod/golang.org/x/tools@v0.2.1-0.20221101170700-b5bc717366b2/internal/fastwalk/fastwalk_darwin.go:11:10: fatal error: 'dirent.h' file not found\n#include <dirent.h>\n ^~~~~~~~~~\n1 error generated.\n"
}
1 tools failed to install.
gopls: failed to install gopls(golang.org/x/tools/gopls@latest): Error: Command failed: /opt/brew/bin/go install -v golang.org/x/tools/gopls@latest
golang.org/x/tools/internal/fastwalk
# golang.org/x/tools/internal/fastwalk
../../go/pkg/mod/golang.org/x/tools@v0.2.1-0.20221101170700-b5bc717366b2/internal/fastwalk/fastwalk_darwin.go:11:10: fatal error: 'dirent.h' file not found
#include <dirent.h>
^~~~~~~~~~
1 error generated.
I know I have dirent.h
because I see results in my local Xcode SDKs when running find / -iregex ".*/dirent.h$" 2>/dev/null
.
I am following the steps here: https://learn.microsoft.com/en-us/azure/developer/go/configure-visual-studio-code
My setup is:
- Fresh install of go from Homebrew
- Fresh install of VSCode macOS from go.dev/doc/install
- Instal the Go plugin
- In the Command Palette, search for and select "Go: Install/Update tools" and select all tools in the dropdown
All tools are installed successfully except for gopls. I have installed go via Homebrew and have also installed gopls via Homebrew but am not sure how to configure VSCode to point to this alternative gopls path.
答案1
得分: 1
问题似乎是由于配置错误或损坏的Xcode和命令行工具引起的。
我从这里https://developer.apple.com/download/all/卸载并重新安装了最新版本的Xcode,以及命令行工具包(这个特别重要)。
尽管xcode-select --install
告诉我一切都安装正确且更新,但我还是不得不这样做。
有关未来问题讨论,请参阅此处:https://github.com/golang/go/issues/56663
英文:
The issue seemed to be due to a misconfigured or corrupted Xcode and command line tools.
I uninstalled and re-installed the latest version of Xcode, as well as the Command Line Tools package (this one is especially important) from here https://developer.apple.com/download/all/.
I had to do this despite xcode-select --install
telling me everything was installed correctly and up to date.
Future issue discussion available here: https://github.com/golang/go/issues/56663
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论