Compilación condicional de golang

Tengo un problema con la compilación condicional en Go 1.

Aquí está mi código de prueba. ¿Hay algo que mal entienda sobre la restricción "// + build" y la marca "-tags"?

main1.go

// +build main1
package main

import (
    "fmt"
)

func main() {
    fmt.Println("This is main 1")
}

main2.go

// +build main2
package main

import (
    "fmt"
)

func main() {
    fmt.Println("This is main 2")
}

Al ejecutar "Go Build", todavía tengo un error de compilación

$ go build -tags 'main1'
# test
./main2.go:8: main redeclared in this block
        previous declaration at ./main1.go:8

Respuestas a la pregunta(4)

Su respuesta a la pregunta