【问题标题】:VSCode import problem with windows API callWindows API调用的VSCode导入问题
【发布时间】:2021-07-14 16:20:29
【问题描述】:

在VSCode中导入golang.org/x/sys/windows时,只能选择SIGDescribe,没有别的。

将鼠标悬停在导入上,出现以下错误。

导入 golang.org/x/sys/windows 时出错:构建约束排除 /home/username/go/pkg/mod/golang.org/x/sys@v0.0.0-20210630005230-0f9fa26af87c/ 中的所有 Go 文件窗户

无法导入golang.org/x/sys/windows(不需要模块提供包“golang.org/x/sys/windows”)compilerBrokenImport

手动命令go get golang.org/x/sys/windows给出以下错误信息

命令“gopls.go_get_package”失败:错误:错误:退出状态 1:stderr:包 golang.org/x/sys/windows:构建约束排除 /home/username/go/pkg/mod/ 中的所有 Go 文件golang.org/x/sys@v0.0.0-20210630005230-0f9fa26af87c/windows .

我已经在 VSCode 中重新安装了 Golang 并更新了 GoTools,没有任何变化。

目标:下面的代码应该可以工作。

package main

import "golang.org/x/sys/windows"

func main() {
    user32DLL := windows.NewLazyDLL("user32.dll")
}

操作系统:Ubuntu 21.04

GO 版本:1.16.6

编辑器:VSCode 1.58.1

【问题讨论】:

  • gopls 对跨平台开发的支持仍然有限。如果项目使用 GOOS=windows 构建,那就没问题了。
  • 你是对的,GOOS=windows 程序编译运行后,即使是 VSCode lintings 也充满了错误,go import module windows 无法识别 NewLazyDLL 之类的方法。跨度>

标签: go winapi visual-studio-code


【解决方案1】:

something 某处创建一个文件夹。然后制作一个文件something/main.go

package main
import "golang.org/x/sys/windows"

func main() {
   println(windows.EVENTLOG_ERROR_TYPE == 1)
}

然后构建:

go mod init something
go mod tidy
go build

【讨论】:

  • 现在显示导入时出现悬停错误:无法导入 golang.org/x/sys/windows(无法在其中找到包“golang.org/x/sys/windows” /usr/local/go/src/golang.org/x/sys/windows 中的任何一个(来自 $GOROOT)/home/username/go/src/golang.org/x/sys/windows(来自 $GOPATH))compilerBrokenImport .....进一步...... go build error 现在显示:打包导入 golang.org/x/sys/windows:构建约束排除 /home/username/go/pkg 中的所有 Go 文件/mod/golang.org/x/sys@v0.0.0-20210630005230-0f9fa26af87c/windows
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 2021-11-23
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
相关资源
最近更新 更多