Bagaimana untuk menyelesaikan ralat go build untuk github.com/godror/godror?

PHPz
Lepaskan: 2024-02-09 08:20:18
ke hadapan
683 orang telah melayarinya

如何解决 github.com/godror/godror 的 go 构建错误?

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.

Kandungan soalan

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>
Salin selepas log masuk

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&#160;protected]/orahlp.go:530:19: undefined: VersionInfo
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:531:19: undefined: VersionInfo
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:532:10: undefined: StartupMode
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:533:11: undefined: ShutdownMode
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:535:31: undefined: Event
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:535:42: undefined: SubscriptionOption
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:535:64: undefined: Subscription
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:536:31: undefined: ObjectType
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:537:59: undefined: Data
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:538:28: undefined: DirectLob
../../../../pkg/mod/github.com/godror/[email&#160;protected]/orahlp.go:538:28: too many errors
Salin selepas log masuk

Saya boleh membina untuk Mac OS tetapi menghadapi masalah membina untuk Linux. Bolehkah anda membantu saya menyelesaikan ralat ini?

Penyelesaian

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
Salin selepas log masuk

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!