Devo essere in grado di creare versioni diverse di un'applicazione go; una versione di 'debug' e una versione normale.Come utilizzare correttamente i tag di compilazione?
Questo è facile da fare; Ho semplicemente un const DEBUG, che controlla il comportamento dell'applicazione, ma è fastidioso dover modificare il file di configurazione ogni volta che ho bisogno di scambiare tra i tipi di build.
stavo leggendo accumulo go (http://golang.org/pkg/go/build/) e tag, ho pensato che forse avrei potuto fare questo:
config.go:
// +build !debug
package build
const DEBUG = false
config.debug.go:
// +build debug
package build
const DEBUG = true
Quindi dovrei essere in grado di creare usando "go build" o "go build -tags debug", e i tag dovrebbero escludere config.go e includere config.debug.go.
... ma questo non funziona. Ottengo:
src/build/config.go: 3: DEBUG ridichiarato in questo blocco (< 0>) precedente dichiarazione in src/build/config.debug.go: 3
Che cosa sto facendo di sbagliato?
Esiste un altro e più appropriato metodo #ifdef per fare ciò che dovrei usare?
sì grazie, questo era il problema; domanda modificata per essere meno stupida. – Doug