Unity WebGL System.DllNotFoundException (libproc) Hatası Çözümü
Unity System.DllNotFoundException (libproc) Hatası Çözümü
Hepinize merhaba arkadaşlar Mac OS 12.3 ve sonrası işletim sistemlerinde Unity WebGL çıktısı alırken aşağıda bulunan
System.DllNotFoundException: Unable to load shared library 'libproc' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibproc, 0x0001): tried: 'liblibproc' (no such file), '/usr/local/lib/liblibproc' (no such file)
hatası ile karşılaşıyordum ve bunun Mac OS un yeni sürümü ile ilgili olduğunu keşfettim, daha sonra yaptığım bir kaç araştırma sonucunda bunun projenize dahil edeceğiniz ufak bir script ile çözülebileceğini öğrendim.
Tabi bu scripti oluşturmadan önce bilgisayarınızda Pythonun kurulu olması gerekmektedir ve aşağıdaki kodu da sisteminizde kurulu olan Python sürümüne göre değiştirmeyi ve düzenlemeyi unutmamalısınız.
Scriptimiz
#if UNITY_EDITOR using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine; public class PreBuildProcessing : IPreprocessBuildWithReport { public int callbackOrder => 1; public void OnPreprocessBuild(BuildReport report) { System.Environment.SetEnvironmentVariable("EMSDK_PYTHON", "/Library/Frameworks/Python.framework/Versions/3.10/bin/python3"); } } #endif
Yukarıdaki her koşulu sağlayıp hala hata alıyorsanız Python EMSDK kurulu olmayabilir, Python EMSDK yı kurup tekrar çıktı almayı deneyin, eğer hala hata almaya devam ederseniz aşağıdan bana yorum olarak sorabilirsiniz.
Not : Yukarıdaki çözüm scripti Mac için verilmiştir ancak scripti Windows/Linux da bulunan Python konumu ile değiştirip çözüm için kullanabilirsiniz.
Çözüm Mantığı
Yukarıdaki çözümün neden çalıştığını anlatacak olursam, aslında hata Unitynin kendi WebAssembly derleyicisini bulamamasından kaynaklanıyor ve biz de buradaki çözüm yöntemimiz ile Python da bulunan WebAssembly yi kullanarak çözüyoruz.
Yorum Gönder