Go install не создает файл bin
Моя структура папок верна, я могу оба запускать go install
изнутри папки пакета и из любой точки системы, добавив имя пакета (папки) после install
.
Например, мое рабочее пространство выглядит следующим образом:
Go\
bin\
pkg\
src\
name\
file.go
тогда, если я забегу
cd %GOPATH%\src\name
go install
или
go install name
ошибки не генерируются, и мое рабочее пространство становится следующим:
Go\
bin\
pkg\
windows_amd64\ <-- new!
name.a <-- new!
src\
name\
file.go
Файлы пакетов правильно созданы, но файлы bin нет.
Мой переход env следующий:
C:\Users\...>go env
set GOARCH=amd64
set GOBIN=C:\Users\myname\Documents\Go\bin
set GOCHAR=6
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\myname\Documents\Go
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
Почему это так? Мне что-то не хватает, что-то не так? Я хочу, чтобы файлы bin создавались вместе с файлами пакетов.
Ответы
Ответ 1
Одной из причин может быть file.go
не в package main
file.go
.
См. Например, " Ваша первая программа ",
Если бы это было так, это создало бы исполняемый файл в bin
.
В статье " Как работает команда сборки? " Упоминается:
Команда Go - это пакет, имя которого является main
.
Основные пакеты или команды компилируются точно так же, как и другие пакеты, но затем проходят несколько дополнительных шагов, которые должны быть связаны с окончательным исполняемым файлом.
Ответ 2
Я пришел к этому вопросу с другой проблемой, так что, надеюсь, это кому-нибудь поможет. Это не отвечает конкретно на этот вопрос, но он отвечает мне, по крайней мере, почему не создавался бинарный файл.
Допустим, ваша структура каталогов выглядит так:
.go/
bin/
pkg/
src/
github.com/
banool/
myapp/
file.go
server.go
cmd/
myapp/
main.go
Я должен был выполнить эти две команды:
go build github.com/banool/myapp/...
go build github.com/banool/myapp/cmd/...
После этого мой бинарный файл появился под myapp/
.
Очевидно, что это совсем другая ситуация в ответ выше, но я пришел к этому вопросу с такой ситуацией, когда я бежать go get
, чтобы получить какой - то источник Go, и я не знаю, как строить. Надеюсь, это поможет людям натолкнуться на этот вопрос с этой проблемой :)