Maison > Article > développement back-end > Comment résoudre les erreurs de build pour github.com/godror/godror ?
L'éditeur php Yuzai a rencontré des erreurs lors de la construction de la bibliothèque go à l'aide de github.com/godror/godror, ce qui l'a troublé. Afin de résoudre ce problème, il a mené des recherches et des tentatives approfondies et a résumé quelques solutions efficaces. Dans cet article, nous partagerons son expérience et aiderons tout le monde à résoudre l'erreur go build de github.com/godror/godror, afin que tout le monde puisse utiliser avec succès cette bibliothèque pour les travaux de développement.
Sur Mac OS, j'essaie de créer le fichier suivant pour l'exécuter sur une machine Linux.
<code>package main import ( "context" "database/sql" _ "github.com/godror/godror" ) func main() { dsn := "user/password@host:port/sid" // Open a connection to the Oracle database db, err := sql.Open("godror", dsn) if err != nil { panic(err.Error()) } defer db.Close() // Test the database connection ctx := context.Background() err = db.PingContext(ctx) if err != nil { panic(err.Error()) } query := "SELECT * FROM table" rows, err := db.QueryContext(ctx, query) if err != nil { panic(err.Error()) } defer rows.Close() if err := rows.Err(); err != nil { panic(err.Error()) } } </code>
J'ai utilisé la commande suivante pour construire :
env GOOS=linux GOARCH=amd64 go 构建 db.go
Erreur :
# github.com/godror/godror ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:530:19: undefined: VersionInfo ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:531:19: undefined: VersionInfo ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:532:10: undefined: StartupMode ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:533:11: undefined: ShutdownMode ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:535:31: undefined: Event ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:535:42: undefined: SubscriptionOption ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:535:64: undefined: Subscription ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:536:31: undefined: ObjectType ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:537:59: undefined: Data ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:538:28: undefined: DirectLob ../../../../pkg/mod/github.com/godror/[email protected]/orahlp.go:538:28: too many errors
Je suis capable de créer pour Mac OS mais j'ai des problèmes pour créer sous Linux. Pouvez-vous m'aider à résoudre ces erreurs ?
Cette erreur de compilation croisée est causée par le package github.com/godror/godror
utilisant CGO. Pour compiler l'application, vous avez besoin d'une installation gcc valide et de CGO_ENABLED=1, comme indiqué dans le Lisezmoi.
Vous pouvez essayer d'utiliser Docker pour compiler pour Linux/amd64.
Exemple :
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run --rm -v "$PWD":/app -w /app golang:1.21 go build -v db.go
Cela construira l'application dans un conteneur Docker et enregistrera le fichier exécutable dans le répertoire actuel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!