Pautan Dinamik dalam Go Binari
Masalah:
Pertimbangkan senario di mana anda mempunyai binari Go sedia ada dan perlu menambah kefungsian dengan menyusun fail Go luaran. Setelah dikompilasi, anda ingin menyepadukan kod baharu ini ke dalam binari tanpa membina semula keseluruhan aplikasi.
Penyelesaian:
Dalam Go 1.5 dan lebih baru, kini boleh dilakukan untuk membina dan memautkan perpustakaan kongsi secara dinamik. Begini cara anda boleh mencapai kefungsian yang anda inginkan:
$ go install -buildmode=shared std
Arahan ini membina perpustakaan standard sebagai perpustakaan kongsi.
Kompilasikan fail Go luaran seperti berikut:
$ go build -linkshared hello.go
Setelah fail Go luaran disusun, ia boleh dipautkan ke binari sedia ada menggunakan -linkshared bendera:
$ go install -linkshared mybinary.go
Dalam binari sedia ada, anda kini boleh memanggil kod yang baru disusun seperti mana-mana fungsi lain yang ditakrifkan dalam binari itu sendiri.
Contoh:
package main import ( "fmt" "github.com/myimportpath/mypackage" ) func main() { fmt.Println("Before calling compiled code") mypackage.RunFoo() fmt.Println("After calling compiled code") }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memautkan Kod Go Luaran Secara Dinamik ke Perduaan Go Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!