¿Cómo eliminar el código no utilizado en tiempo de compilación?

Hemos creado un paquete Go que muchos de nosotros usamos.

Se importa usando el estándarimport ("package-name") método.

Sin embargo, en el momento de la compilación, todas nuestras utilidades, incluidas las muy pequeñas, terminan como binarios muy grandes.

Hemos extraído todas las cadenas de las utilidades y descubrimos que todo el paquete se está compilando en todas y cada una de las utilidades. Incluyendo funciones que no están siendo utilizadas por esas utilidades.

EDITAR 1:

Gracias a las personas que están respondiendo a esta pregunta.

Esto es lo que estamos viendo:

main.go

package main

import "play/subplay"

func main() {
    subplay.A()
}

play / subplay.go

package subplay

func A() {
    fmt.Printf("this is function A()")
}

func B() {
    fmt.Printf("secret string")
}

La función B () nunca se llama. Sin embargo, después de construir el binario, encontramos la cadena "cadena secreta" en main.exe.

¿Cómo podemos eliminar el código no utilizado de los programas Go en tiempo de compilación?

Respuestas a la pregunta(2)

Su respuesta a la pregunta