Plugin derleme
- Go kursu
- İleri seviye
- Ders 20/68
- 4 dk
go build -buildmode=plugin ile plugin derlemeyi öğrenirsin.
Plugin derleme
Plugin, package main olan ama main fonksiyonu gerekmeyen bir pakettir. Dışa aktarılmış (büyük harfli) her fonksiyon ve değişken plugin'in sembolü olur.
// selam/selam.go
package main
func Selam(ad string) string { return "Merhaba " + ad }Derleme: go build -buildmode=plugin -o selam.so ./selam
Sürüm uyumu
Ana programı ve plugin'i aynı modül sürümleriyle derlemek için ikisini aynı depoda tutmak ya da aynı go.mod'u paylaşmak en güvenli yoldur. Farklı derlenmiş bir plugin yüklenince "plugin was built with a different version of package" hatası alınır.
Uygulama Plugin fonksiyonu yaz
Plugin olarak derlenecek koda func Ikiye(n int) int fonksiyonunu ekle (n'nin iki katını döndürsün). main içinde test için fmt.Println(Ikiye(21)) yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func Ikiye(n int) int { return n * 2 }
func main() {
fmt.Println(Ikiye(21))
}Beklenen çıktı
42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Plugin derlemek için hangi bayrak gerekir?
- -o plugin
- -buildmode=plugin Doğru cevap
- -plugin
- -shared=true
Açıklama: go build -buildmode=plugin paylaşımlı nesne (.so) üretir; -o ile dosya adı verilir.
2 Derleme komutu
go build ____ -o selam.so ./selam
go build -buildmode=plugin -o selam.so ./selam
Açıklama: -buildmode=plugin çıktıyı yüklenebilir bir .so dosyası yapar.
3 Plugin kaynağı
| Kavram | Anlamı |
|---|---|
package main |
Plugin paketi adı |
func Selam |
Dışa aktarılmış sembol |
func yardimci |
Görünmez (küçük harf) |
-o selam.so |
Çıktı dosyası |