Eu tenho um pequeno programa que consiste em três arquivos, todos pertencentes ao mesmo pacote (principal), mas quando faço "ir construir main.go", a compilação não é bem-sucedida. Quando era apenas um arquivo (main.go), tudo funcionava bem. Agora que fiz algum esforço para separar o código, parece que o compilador não consegue encontrar o que foi retirado de main.go e colocado nesses dois outros arquivos (que residem no mesmo diretório do main.go) . O que resulta em erros de "tipo 'indefinido".
Como compilar este programa que consiste em vários arquivos?
fonte
Quando você separa o código do
main.go
em, por exemplomore.go
, simplesmente passa esse arquivo parago build
/go run
/go install
também.Então, se você já executou
você agora simplesmente
Como mais informações:
afirma:
Observe que
go build
ego install
diferem dego run
que os dois primeiros estados esperam nomes de pacotes como argumentos, enquanto o último espera arquivos go . No entanto, os dois primeiros também aceitam arquivos go como go install.Se você está se perguntando: build irá apenas
build
os pacotes / arquivos,install
irá produzir objetos e arquivos binários em seu GOPATH, erun
irá compilar e executar seu programa.fonte
Você também pode simplesmente correr
na pasta do seu projeto myproject / go / src / myprog
Então você pode simplesmente digitar
para executar seu aplicativo
fonte
chmod +x
permissão para esse arquivo para executá-loDesde o Go 1.11+, GOPATH não é mais recomendado, a nova forma é usar os módulos Go.
Digamos que você esteja escrevendo um programa chamado
simple
:Crie um diretório:
Crie um novo módulo:
Coloque todos os seus arquivos nesse diretório.
Finalmente, execute:
Como alternativa, você pode criar um programa executável construindo-o:
Para obter mais informações, você pode ler isto .
fonte
Você pode usar
ambos funcionarão também você pode usar
fonte
Depende da estrutura do seu projeto. Mas o mais simples é:
então corra
./myproject
.Suponha que a estrutura do seu projeto se pareça com este
então você simplesmente vai para o diretório do projeto e executa
em seguida, execute
./myproject
no shell.ou
suponha que seu arquivo principal esteja aninhado em um subdiretório como um
cmd
então você vai correr
fonte
Sim! Isso é muito simples e é aí que a estratégia do pacote entra em jogo. existem três maneiras de meu conhecimento. estrutura da pasta:
Aviso de GOPATH / src / github.com/ abc / myproject / adapter / main.go pkg1 pkg2: o adaptador pode conter apenas os diretórios principal e sun do pacote
O arquivo exe será criado no diretório em que você está atualmente.
fonte