--- title: Guia Completo de como começar e compilar projetos em Go date: 2025-08-08 modified: 2025-08-08 slug: guia-completo-como-comecar-e-compilar-projetos-em-go cover: https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/PVr9Gsj93Pc/upload/6f90f5477a919eb7a0ac5d177f707c6d.jpeg tags: linux, go, golang, windows, macos category: Golang lang: pt_BR status: published --- Olá, futuro(a) programador(a) Go! Se você chegou até aqui, provavelmente está curioso(a) sobre a linguagem Go (também conhecida como Golang) e quer dar os primeiros passos. A boa notícia é que você escolheu uma linguagem poderosa, eficiente e com um sistema de compilação simplesmente genial! Neste post, vamos mergulhar de cabeça em como iniciar um projeto Go do zero e, o mais legal, como "exportá-lo" (ou seja, compilá-lo) para que ele possa rodar em diferentes sistemas operacionais, como Linux, Windows e macOS, com uma facilidade impressionante. Prepare-se para ver a magia do Go em ação! ## Passo 1: O pontapé inicial - criando seu projeto Go Todo grande projeto começa com um bom alicerce. Em Go, isso significa criar um diretório e inicializar um "módulo". O módulo Go é o coração do seu projeto, gerenciando as dependências e organizando seu código. Vamos colocar as mãos na massa! Abra seu terminal (Prompt de Comando, PowerShell, Terminal, etc.) e siga estes comandos: ```bash # 1. Crie uma pasta para o seu novo projeto mkdir meu-primeiro-go-app # 2. Navegue para dentro dessa pasta cd meu-primeiro-go-app ``` Com a pasta criada e você dentro dela, é hora de inicializar seu módulo Go. Pense no caminho do módulo como uma espécie de "endereço" único para o seu projeto. É comum usar o caminho de um repositório Git (ex: [`github.com/seuusuario/nome-do-app`](http://github.com/seuusuario/nome-do-app)), mas para nosso exemplo, vamos usar algo genérico: ```bash # 3. Inicialize o módulo Go go mod init exemplo.com/meu-primeiro-go-app ``` **O que aconteceu?** Você acabou de criar um arquivo chamado `go.mod` dentro da sua pasta! Se você der uma olhada nele (`cat go.mod` no Linux/macOS ou `type go.mod` no Windows), verá algo parecido com: ```go module exemplo.com/meu-primeiro-go-app go 1.24 // A versão do Go pode variar ``` Este arquivo é como a carteira de identidade do seu projeto Go. Ele é essencial para o Go entender o que seu projeto é e quais pacotes ele usa. ## Passo 2: Seu primeiro código Go - "Olá, Mundo!" Agora que a estrutura está pronta, vamos escrever nosso primeiro programa Go. Por tradição, começaremos com o clássico "Olá, Mundo!". Crie um novo arquivo chamado `main.go` dentro da pasta `meu-primeiro-go-app`. Você pode usar seu editor de código favorito ou, se preferir o terminal: ```bash # No Linux/macOS touch main.go # No Windows echo "" > main.go ``` Agora, edite o arquivo `main.go` e adicione o seguinte código: ```go package main import "fmt" func main() { // Exibe uma mensagem no console fmt.Println("Olá, Go! Meu primeiro aplicativo está rodando!") } ``` **Entendendo o Código:** * `package main`: Indica que este é um programa executável. Todo executável Go precisa do pacote `main`. * `import "fmt"`: Importa o pacote `fmt` (de "format"), que nos dá funções para formatar e imprimir textos, como o que vamos usar. * `func main()`: Esta é a função principal do seu programa. Quando você o executa, o Go começa por aqui. * `fmt.Println(...)`: A função `Println` do pacote `fmt` imprime o texto entre parênteses na tela e adiciona uma nova linha. ## Passo 3: Executando seu código Go Com o código pronto, é hora de ver a mágica acontecer! Certifique-se de que você ainda está no diretório `meu-primeiro-go-app` no seu terminal e execute: ```bash go run main.go ``` Você deverá ver a mensagem: ```bash Olá, Go! Meu primeiro aplicativo está rodando! ``` Parabéns! Seu primeiro programa Go está no ar! ## Passo 4: O "Grande segredo" - Compilando seu projeto (Gerando o Executável) "Exportar" um projeto Go significa, na verdade, **compilá-lo** em um arquivo executável. A grande vantagem do Go é que ele cria um **único arquivo binário autônomo**, ou seja, você não precisa se preocupar em levar centenas de arquivos ou bibliotecas junto com seu programa. O executável já tem tudo o que precisa! Para compilar, usamos o comando `go build`: ```bash go build ``` **O que acontece agora?** Após a execução, um novo arquivo será criado na sua pasta: * No **Linux/macOS**: `meu-primeiro-go-app` (o nome da sua pasta principal) * No **Windows**: `meu-primeiro-go-app.exe` Este é o seu programa compilado! Você pode executá-lo diretamente: ```bash ./meu-primeiro-go-app # No Linux/macOS meu-primeiro-go-app.exe # No Windows ``` Ele produzirá a mesma saída de antes. Incrível, não é? Você tem um executável independente! ## Passo 5: A joia da coroa - Cross-compilação em Go! Aqui é onde o Go realmente brilha! Uma das suas características mais amadas é a **cross-compilação nativa**. Isso significa que você pode compilar seu código para diferentes sistemas operacionais (Windows, Linux, macOS) e arquiteturas de processador (32-bit, 64-bit, ARM) a partir do seu próprio computador, sem precisar de máquinas virtuais ou configurações complicadas. Para fazer isso, usamos duas variáveis de ambiente: * `GOOS`: Define o sistema operacional alvo (ex: `windows`, `linux`, `darwin` para macOS). * `GOARCH`: Define a arquitetura do processador alvo (ex: `amd64` para 64-bit, `arm64` para Apple Silicon ou Raspberry Pi). A sintaxe geral é: ```bash GOOS= GOARCH= go build -o ``` Vamos ver alguns exemplos práticos: ### Exemplo 1: Compilando para Linux (64-bit) Se você quer que seu programa rode na maioria dos servidores Linux: ```bash # Se você está no Linux/macOS: GOOS=linux GOARCH=amd64 go build -o meu-programa-linux # Se você está no Windows (usando PowerShell): $env:GOOS="linux"; $env:GOARCH="amd64"; go build -o meu-programa-linux Remove-Item Env:GOOS, Env:GOARCH # Para limpar as variáveis de ambiente # Se você está no Windows (usando Prompt de Comando): set GOOS=linux set GOARCH=amd64 go build -o meu-programa-linux set GOOS= set GOARCH= ``` Um arquivo `meu-programa-linux` será criado. ### Exemplo 2: Compilando para Windows (64-bit) Se seu objetivo é o sistema operacional Windows: ```bash # Se você está no Linux/macOS: GOOS=windows GOARCH=amd64 go build -o meu-programa-windows.exe # Se você está no Windows (usando PowerShell): $env:GOOS="windows"; $env:GOARCH="amd64"; go build -o meu-programa-windows.exe Remove-Item Env:GOOS, Env:GOARCH # Se você está no Windows (usando Prompt de Comando): set GOOS=windows set GOARCH=amd64 go build -o meu-programa-windows.exe set GOOS= set GOARCH= ``` Um arquivo `meu-programa-windows.exe` será criado. ### Exemplo 3: Compilando para macOS (Apple Silicon - M1/M2/M3) Se você quer atingir os novos Macs com chips M-series: ```bash # Se você está no Linux/Windows: GOOS=darwin GOARCH=arm64 go build -o meu-programa-mac-m1 ``` **Dica:** Para ver todas as combinações `GOOS` e `GOARCH` que o Go suporta, execute no seu terminal: ```bash go tool dist list ``` ## Conclusão Incrível, não é? Em poucos passos, você não apenas iniciou seu primeiro projeto Go, escreveu um código funcional, como também aprendeu a compilá-lo para ser executado em qualquer lugar! Essa facilidade de geração de binários autônomos e a cross-compilação são alguns dos motivos pelos quais Go é tão amado por desenvolvedores para construir desde pequenas ferramentas de linha de comando até complexos serviços de backend.