- package_linux.go ve package_windows.go kodlarındaki aynı fonksiyonlar sorun yaratmakta. Örnek için ahenk-go/pkg/osinfo/os_windows.go ve os_linux.go dosyalarını IDE'nizde birlikte açınız
- see these [t](https://github.com/microsoft/vscode-go/issues/2672)w[o](https://github.com/golang/go/issues/29202) issues or [workaround](#workaround) to resolve problem
###### Workaround
-`.vscode/settings.json` içinde `go.buildFlags` ayarı linux/windows için çalışırken manuel olarak değiştirilmeli.
-`package_linux.go` dosyalarında, `//go:build linux` yerine `//go:build linux && !windows` kullanılmalı (ki go.buildFlags -tags=windows'a ayarlı iken bu paketleri dahil etmesin)
- **Windows** üzerine bir özellik geliştirirken `.vscode/settings.json` dosyasına ekleyiniz: `"go.buildFlags": ["-tags=windows"],`
- Her seferinde manuel olarak ayarın değiştirilmesi lazım
- herhangi bir sistem için çalışırken diğer sistemin kodu içinde diagnotics çalışmamakta. Örneğin `tags=windows` etkinken eğer package_linux.go dosyasına gidersek go eklentisinin çoğu yapılandırma özellikleri çalışmamakta ve uyarı vermekte
- Eklentileri Manuel olarak yüklemeniz gerekmektedir. Konfigrasyonlarını ise VSCode/Codium üzerinden kendiniz yapabilirsiniz veya `.vscode/settings.json` dosyasını direkt kullanabilirsiniz.
- Not: Eğer workspace içerisinde ahenk-go haricinde başka dosya veya klasörler varsa bazı ayarlar geçersiz olabilir, `.vscode/settings.json` içerisindeki tüm ayarları kopyalayıp vscode ayarlarındaki setting.json dosyasına yapıştırabilirsiniz. (tabii ki ilk ve son süslü parantez hariç)
- GOPATH'i `C:\users\KullanıcıAdınız\go` şeklinde düzenleyiniz (kurulumda kurduğunuz path)
- PATH'i `C:\users\KullanıcıAdınız\go\bin` şeklinde düzenleyiniz
- https://github.com/eh-steve/goloader#build adresinde yer alan ayarları yapınız, GOROOT değişkenini kullanmak yerine işlemi manuel olarak yapmanız önerilir.
- Artık `make local_wine` komutu ile go dosyasını buildleyip, `wine /usr/bin/ahenk-go` komutu ile çalıştırabilirsiniz. (sisteminiz sadece `ahenk-go` yazınca da wine ile çalıştıracağını anlayabilir)
#### Wine ile ilgili ek bilgiler
- eğer halihazırda bir wine kurulumunuz varsa ve farklı bir dizin kullanmak istiyorsanız `winetricks` uygulamasını yükleyerek yeni bir prefix oluşturabilirsiniz.
- sonrasında çalıştıracağınız tüm komutları`env WINEPREFIX=~/.local/share/wineprefixes/PREFIX_ISMI wine KOMUT` öneki ile çalıştırınız. ([yukarı](#wine-geliştirme-ortamının-oluşturulması)daki komutların tümünü ve sonrasında çalıştıracağınız ahenk-go)
- bazı kabuklarda tilde ~ sembolü çalışmayabiliyor, full dizini yazının.
- eğer yeni bir prefix oluşturduysanız Makefile dosyasını gözden geçiriniz ve **özellikle**`WINE_C` değişkenini değiştiriniz !
- Herhangi bir sorun olduğunda ve çözüm bulamadığınızda winetricks uygulamasından ilgili prefix'i seçip herşeyi sil seçeneğini seçip, tüm adımları baştan yapabilirsiniz.
- eğer wine konsolu üzerinde sürekli fixme hataları çıkıyorsa kodu `env WINEDEBUG=fixme-all wine KOMUT` ile çalıştırınız
- goloader, jit, kernel veya pluginlerin yüklenmesi ile ilgili sorun/panic oluşuyorsa `make local_wine_safeplugins` komutunu deneyiniz
- bu komut pluginleri paket olarak içeri import eder ve hangi pluginde sorun olduğunu daha anlaşılabilir bir şekilde gösterir.
- dolayısı ile unload vb. diğer plugin özellikleri çalışmaz, sadece debugging amaçlı kullanınız !
- FIXME `panic: Failed to find GetStdHandle procedure in kernel32.dll: Path not found.` ve `panic: Failed to load kernel32.dll: Path not found.` hatalarının çözümü bulunamadı! Eğer siz de bu hatayı alırsanız wine yerine windows kullanmayı deneyiniz veya sorunu çözerseniz bu dökümantasyona ekleyiniz.