Go сбой сборки: «Загруженная несовместимая плитка» при запуске «go build» с go файлом мода - PullRequest
0 голосов
/ 14 января 2020

Я только начинаю проект и хочу использовать go модули. Я создал новый репо с небольшим количеством функций, но он отказывается от сборки. Я протестировал go build без модулей, и он работает просто отлично. Сообщение об ошибке:

C: \ Users \ gledr \ Polyapp_Apps \ gocode \ src \ gitlab.com \ polyapp \ go -wasm- mvc> go build go: извлечение github .com / rs / cors v1.7.0 проверка github.com/rs/cors@v1.7.0: github.com/rs/cors@v1.7.0: инициализация sumweb.Conn: проверка дерева # 187855: загруженная несовместимая плитка

Что означает ли эта ошибка?

Я предполагаю, что эта ошибка означает, что я должен повторно загрузить соответствующий пакет, даже если пакет работает без go модулей!?

Примечания о моем проекте

  • Стандартный импорт библиотек работает должным образом
  • Нулевой нестандартный импорт библиотек, кажется, работает
  • go build отлично работает, если я удаляю go .mod, но не удается с go mod init go build
  • Вы можете клонировать проект здесь: https://gitlab.com/polyapp-open-source/go-wasm-mvc (очевидно, я еще не написал ни одной функции ...)
  • Вы можете также go get gitlab.com/polyapp-open-source/go-wasm-mvc проект

Попытки решить проблему

  • Нет похожих вопросов переполнения стека («скачано несоответствие» у t tile "есть только 2 результата Google для меня)
  • Код, выдающий ошибку, находится здесь: https://github.com/golang/mod/blob/master/sumdb/tlog/tile.go
  • На основании кода, выдающего ошибку, кажется Я должен удалить неудачную загрузку (даже если она работает без go mod?!?). Я так и сделал. Я удалил соответствующую папку в $ GOPATH / pkg в нескольких подкаталогах и удалил источник в $ GOPATH / sr c, но когда я делаю это, он все равно выдает ошибку
  • Я пытался использовать go build -d github.com/blahblahblah чтобы повторно загрузить файлы, но, по-видимому, он абсолютно ничего не сделал
  • Эта проверка может существовать из-за предложения go sum для 1.13, показанного здесь (ctrl + f для "inconsis"): https://go.googlesource.com/proposal/+/master/design/25530-sumdb.md
  • Если вы прочитали предложение go sum выше, оно говорит: «Команда No go (только руководство rm -rf $GOPATH/pkg) уничтожит память о последнем наблюдаемом размере дерева и ха sh ". Я полагаю, что это ситуация, в которой я нахожусь, но когда я удалил подпакет в $ GOPATH, он все еще не работает.
  • В духе сохранения моей папки $ GOPATH / pkg я попытался удалить кеш здесь: $GOPATH/pkg/mod/cache/download/github.com/[package name] но, как ни странно, хотя удаление кеша вызвало новый 'go get', повторно загруженный файл также имел несовместимую плитку! Из этого опыта я предполагаю, что что-то странное с проверкой go sum <-> $ GOPATH / pkg.

go env

set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\gledr\AppData\Local\go-build
set GOENV=C:\Users\gledr\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\gledr\Polyapp_Apps\gocode
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\Users\gledr\Polyapp_Apps\gocode\src\gitlab.com\polyapp\go-wasm-mvc\go.mod
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 -fmessage-length=0 -fdebug-prefix-map=C:\Users\gledr\AppData\Local\Temp\go-build525753618=/tmp/go-
build -gno-record-gcc-switches```

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Ошибка означает разницу между фактической контрольной суммой и доступной контрольной суммой из БД контрольной суммы. Получение зависимостей из одного места поможет, но в зависимости от описанного случая с вашей стороны произошло изменение зависимости, даже если версия зависимостей постоянна.

Вы недавно перешли на Go 1.13? Или раньше вы использовали другой GOPROXY?

0 голосов
/ 14 января 2020

Я переименовал каталог $ GOPATH / pkg в $ GOPATH / old_pkg - эквивалент rm -rf $GOPATH/pkg, как предложено в предложении Go SUM, которое я связал в этом вопросе. Поэтому все зависимости пришлось перезагружать, но теперь это работает.

Удаление папки $ GOPATH / pkg также привело к тому, что начал работать другой, гораздо более крупный мой проект. Потребовалось всего несколько минут, чтобы заново загрузить все зависимости.

...