CodeBlanks Logo Icon CodeBlanks

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

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
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

Soru
go build ____ -o selam.so ./selam
Cevap
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ı

İleri seviye bölümündeki tüm dersler