Rumah >pembangunan bahagian belakang >Golang >Golang tidak boleh 'menjana sqlc'
editor php Banana membawakan anda isu penting tentang Golang: masalah tidak dapat menggunakan sqlc untuk menjana kod. Golang ialah bahasa pengaturcaraan berkuasa yang sering digunakan untuk membangunkan aplikasi back-end yang cekap dan boleh dipercayai. Walau bagaimanapun, sesetengah pembangun telah menghadapi masalah menggunakan sqlc dan tidak dapat menjana kod yang diperlukan. Masalah ini menyebabkan kekeliruan kepada pembangun, jadi dalam artikel ini kami akan meneroka kemungkinan punca dan menyediakan penyelesaian untuk membantu anda menyelesaikan kekeliruan ini. Mari lihat!
Saya menggunakan Windows dan Ubuntu WSL tetapi saya mendapat ralat ini apabila saya cuba menjana sqlc.
sqlc generate # package database sql/schema/001_users.sql:1:1: the PostgreSQL engine requires cgo. Please set CGO_ENABLED=1.
export CGO_ENABLED=1 && sqlc generate # package database sql/schema/001_users.sql:1:1: the PostgreSQL engine requires cgo. Please set CGO_ENABLED=1.
Apabila saya mencuba go env
arahan tetapi ia berada dalam persekitaran saya tetapi masih tidak dapat menjana sqlc
go env GO111MODULE='' GOARCH='amd64' GOBIN='' GOCACHE='/home/user/.cache/go-build' GOENV='/home/user/.config/go/env' . . . GOHOSTARCH='amd64' GOHOSTOS='linux' GOINSECURE='' GOMODCACHE='/home/user/go/pkg/mod' GONOPROXY='' GONOSUMDB='' GOOS='linux' GOPATH='/home/user/go' GOPRIVATE='' GOPROXY='https://proxy.golang.org,direct' GOROOT='/usr/local/go' GOSUMDB='sum.golang.org' . . . CGO_ENABLED='1' GOMOD='/mnt/c/Users/User/Desktop/Golang/main/go.mod'
Saya dapat meniru ini pada pemasangan baru WSL2 Ubuntu 22.04 (berjalan pada Win 11). Menggunakan imej baharu, saya memasang Go (1.21.4) dan sqlc
(v1.23.0),然后运行 sqlcgenerate
(menggunakan repositori contoh daripada tutorial yang disebutkan dalam soalan) dan mendapat ralat:
# package database sql/schema/001_users.sql:1:1: the PostgreSQL engine requires cgo. Please set CGO_ENABLED=1. sql/schema/002_users_apikey.sql:1:1: the PostgreSQL engine requires cgo. Please set CGO_ENABLED=1. sql/schema/003_feeds.sql:1:1: the PostgreSQL engine requires cgo. Please set CGO_ENABLED=1.
Menariknya, semuanya berfungsi dengan baik di bawah Ubuntu 20.04 (juga pada WSL2).
Terdapat isu keserasian dengan Ubuntu 20.04 dan binari yang didayakan CGO sqlc
并启用 CGO
22.04 (tidak benar-benar melihat isu ini secara terperinci!); jadi nampaknya berbaloi untuk dipasang semula
go env -w CGO_ENABLED=1 sudo apt update sudo apt install gcc go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
sqlc
起作用了(成功为 6-createfeed
示例生成了 go
Selepas melakukan ini, fail, tiada masalah). Nota: Memandangkan ini berfungsi, saya fikir saya akan menambah ulasan untuk sebarang soalan a>sqlc yang serupa dan terjumpa komen ini
mencadangkan penyelesaian asas yang sama (saya tidak menangkapnya semasa saya mencari malam tadi). 🎜Atas ialah kandungan terperinci Golang tidak boleh 'menjana sqlc'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!