Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menyelesaikan ralat go build untuk github.com/godror/godror?
editor php Yuzai mengalami beberapa ralat semasa membina perpustakaan go menggunakan github.com/godror/godror, yang menyusahkannya. Bagi menyelesaikan masalah ini, beliau menjalankan penyelidikan dan percubaan yang mendalam serta merumuskan beberapa penyelesaian yang berkesan. Dalam artikel ini, kami akan berkongsi pengalamannya dan membantu semua orang menyelesaikan ralat go build github.com/godror/godror, supaya semua orang berjaya menggunakan perpustakaan ini untuk kerja pembangunan.
Pada Mac OS, saya cuba membina fail berikut untuk dijalankan pada mesin 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>
Saya menggunakan arahan berikut untuk membina:
env GOOS=linux GOARCH=amd64 go 构建 db.go
Ralat:
# 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
Saya boleh membina untuk Mac OS tetapi menghadapi masalah membina untuk Linux. Bolehkah anda membantu saya menyelesaikan ralat ini?
Ralat kompilasi silang ini disebabkan oleh pakej github.com/godror/godror
menggunakan CGO. Untuk menyusun aplikasi, anda memerlukan pemasangan gcc yang sah dan CGO_ENABLED=1, seperti yang ditunjukkan dalam Readme.
Anda boleh cuba menggunakan docker untuk menyusun untuk linux/amd64.
Contoh:
DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run --rm -v "$PWD":/app -w /app golang:1.21 go build -v db.go
Ini akan membina aplikasi dalam bekas Docker dan menyimpan fail boleh laku dalam direktori semasa.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat go build untuk github.com/godror/godror?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!