dou1908 2018-04-13 01:34
浏览 95
已采纳

无法再在Golang中加载软件包

I can't seem to figure this out. I was using my windows pc to develop and deploy on to a linux machine just fine, when all of a sudden I can't get go to compile anything any more, not even a simple hello world program. It may have been after a windows update. Everything I do comes back with this sort of error:

F:\OneDrive\Projects\gows\src\zonemaster>go install
can't load package: package zonemaster: cannot find package "zonemaster" in 
any of:
    C:\Go\src\zonemaster (from $GOROOT)
    F:\OneDrive\Projects\gows\src\zonemaster (from $GOPATH)

The GOROOT and GOPATH are set correctly, as they always have been, but it can't find any packages. This fails on every single package I have. The above program is part of package "main"

I've updated Go to 1.10.1 and set and rechecked all the paths, but nothing works.

When I try to build it, it says this:

F:\OneDrive\Projects\gows\src\zonemaster>go build zonemaster.go
can't load package: package main: cannot find package "." in:
        F:\OneDrive\Projects\gows\src\zonemaster

The first line of zonemaster.go is package main (as with all of my non-compiling programs).

Here's my go env in case that helps:

set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\ameet\AppData\Local\go-build
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=F:\OneDrive\Projects\gows
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ameet\AppData\Local\Temp\go- 
   build874557962=/tmp/go-build -gno-record-gcc-switches

EDIT:

Even if I run a simple hello.go I have the same problem:

F:\OneDrive\Projects\gows\src\hello>cat hello.go
    package main

    import "fmt"

    func main() {
        fmt.Printf("hello, world
")
    }
F:\OneDrive\Projects\gows\src\hello>go build hello.go
can't load package: package main: cannot find package "." in:
        F:\OneDrive\Projects\gows\src\hello

SOLUTION:

It turns out a onedrive update was the problem. I copied my go workspace folder somewhere else as per Phrozens' suggestion, unticked "Files on Demand" in OneDrive settings, deleted the gows folder in my OneDrive folder, and copied it back in from the backup. Files now compile as normal inside my OneDrive folder again.

  • 写回答

1条回答 默认 最新

  • dougutuo9879 2018-04-16 16:20
    关注

    I just had the same problem and apparently it has to do with the most recent OneDrive update. I just created a test directory elsewhere, setup my GOPATH and worked like a charm, I don't know why, but I have always worked from OneDrive without issues until now.

    https://github.com/golang/go/issues/22579

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败