php-Editor Yuzai stieß beim Erstellen der Go-Bibliothek mit github.com/godror/godror auf einige Fehler, die ihn beunruhigten. Um dieses Problem zu lösen, führte er eingehende Untersuchungen und Versuche durch und fasste einige wirksame Lösungen zusammen. In diesem Artikel werden wir seine Erfahrungen teilen und allen helfen, den Go-Build-Fehler unter github.com/godror/godror zu beheben, damit jeder diese Bibliothek erfolgreich für Entwicklungsarbeiten nutzen kann.
Unter Mac OS versuche ich, die folgende Datei für die Ausführung auf einem Linux-Computer zu erstellen.
<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>
Ich habe zum Erstellen den folgenden Befehl verwendet:
env GOOS=linux GOARCH=amd64 go 构建 db.go
Fehler:
# 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
Ich kann für Mac OS erstellen, habe aber Probleme beim Erstellen für Linux. Können Sie mir helfen, diese Fehler zu beheben?
Dieser Cross-Compilation-Fehler wird durch das github.com/godror/godror
-Paket verursacht, das CGO verwendet. Um die Anwendung zu kompilieren, benötigen Sie eine gültige gcc-Installation und CGO_ENABLED=1, wie in der Readme gezeigt.
Sie können versuchen, Docker zum Kompilieren für Linux/AMD64 zu verwenden.
Beispiel:
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run --rm -v "$PWD":/app -w /app golang:1.21 go build -v db.go
Dadurch wird die Anwendung in einem Docker-Container erstellt und die ausführbare Datei im aktuellen Verzeichnis gespeichert.
Das obige ist der detaillierte Inhalt vonWie behebe ich Go-Build-Fehler für github.com/godror/godror?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!