Thread overview
Bindings ve kütüphanelerdeki bağımlılık dosyalarının DMD ile eklenmesi nasıl olur ?
Jul 16, 2023
Cos00kun
Jul 16, 2023
Cos00kun
Jul 17, 2023
Ferhat Kurtulmuş
Jul 17, 2023
Cos00kun
Jul 17, 2023
Salih Dincer
Jul 17, 2023
Cos00kun
July 16, 2023

Bir konuyu merak ediyorum.
SDL, DirectX, Vulkan, OpenGL, Raylib v.s... bu gibi kütüphaneler veya başka kütüphanelerin bindingslerini genelde dub paket yönetici ve dependency ile hallediyoruz. Oysa ben bundan hiç hoşlanmadım kalu beladan beri :) Şimdi diyelimki Raylib kütüphanesiyle bir kod yazdım ve
dub.json dosyamda;
............
"dependencies": {
"raylib-d": "~>4.5.1"
},
..........
..........
raylibin bağımlılıklarını (kendimi alkolik gibi hissettiriyor bu bağımlılık lafı) dub programıma ekliyor. Benim merak ettiğim Dub burda hangi dosyaları nereden buluyor ne ekliyor ? ben bunu doğrudan terminalin komut satırından dmd xxx.d -i -Lxx.x -Lxx.x şeklinde nasıl ve neleri ekleyeceğimi nasıl bulabilirim ?
Özellikle Vulkan, OpenGL ve Raylib soruyorum..

July 16, 2023

On Sunday, 16 July 2023 at 18:28:57 UTC, Cos00kun wrote:

>

Bir videoda şunu anlamıştım; örneğin bir kütüphane C ile yazılmış ve farzedelim tek dosyası ve başlık dosyası var xx.c ve xx.h dosyaları. Biz xx.h başlık dosyasını xx.d şekline dilin olanaklarını kullanarak çevirdiğimizde ve xx.c dosyasının derlenmiş halini!! (tam emin değilim ama windows ortamı için sanırım xx.obj veya xx.lib) bir yerden temin edip yada herhangi bir C/C++ derleyicisi ile elde eder ve bunu "DMD main.d xx.obj " ile derlersek bu çalışıyor. Elbet main.d ye xx.d yi import xx ile eklersek

Yukarıdaki soruyla bir bağı olabilir diye bunu da yazmak istedim.

July 17, 2023

On Sunday, 16 July 2023 at 18:36:19 UTC, Cos00kun wrote:

>

On Sunday, 16 July 2023 at 18:28:57 UTC, Cos00kun wrote:

>

Bir videoda şunu anlamıştım; örneğin bir kütüphane C ile yazılmış ve farzedelim tek dosyası ve başlık dosyası var xx.c ve xx.h dosyaları. Biz xx.h başlık dosyasını xx.d şekline dilin olanaklarını kullanarak çevirdiğimizde ve xx.c dosyasının derlenmiş halini!! (tam emin değilim ama windows ortamı için sanırım xx.obj veya xx.lib) bir yerden temin edip yada herhangi bir C/C++ derleyicisi ile elde eder ve bunu "DMD main.d xx.obj " ile derlersek bu çalışıyor. Elbet main.d ye xx.d yi import xx ile eklersek

Yukarıdaki soruyla bir bağı olabilir diye bunu da yazmak istedim.

dub komutunu çalıştırırlen '-v' parametresi (verbose) kullanılırsa derleyicinin aldığı bütün parametreler (-I ve -L parametreleri) konsoldan görülebilir. Böylelikle belki bir kez dub ile gerekli parametrelere baktıktan sonra, kendi yolunu bulabilirsin. Tavsiye ettiğim birşey olmasa da mesela:

dub -v

ldc2.exe -of.dub\build\application-debug-windows-x86_64-ldc_v1.31.0-5DC476D1649D06A749846D4DE037A2F7ACAFFDB0AB03A6F728A395940D066C84\testds5.exe .dub\build\application-debug-windows-x86_64-ldc_v1.31.0-5DC476D1649D06A749846D4DE037A2F7ACAFFDB0AB03A6F728A395940D066C84\testds5.obj C:\Users\user\AppData\Local\dub\packages\ds5w-0.0.2\ds5w.dub\build\library-debug-windows-x86_64-ldc_v1.31.0-D312BEBD8E42422F85C7689EC66AF3C8BACE034EA9A89D3263FB3BD6C528E7E3\ds5w.lib C:\Users\user\AppData\Local\dub\packages\dwt-master\dwt.dub\build\windows-win32-debug-windows-x86_64-ldc_v1.31.0-8F74918CC8F9F12AD3CB78BA984D7D3704B295C771D24EA628BB9EE403738CE3\dwt.lib C:\Users\user\AppData\Local\dub\packages\dwt-master\dwt.dub\build\library-debug-windows-x86_64-ldc_v1.31.0-ECFFFFA8B7C9D3DCA65A66BED2B3BADC6261199E2A4D898E0437E5C8D41DBEA6\dwt_base.lib -LD:/projects/d_projects/dwt/win-res/resource.res -L-lhid -L-ladvapi32 -L-lcomctl32 -L-lcomdlg32 -L-lgdi32 -L-lkernel32 -L-lmsimg32 -L-lole32 -L-loleacc -L-loleaut32 -L-lopengl32 -L-lshell32 -L-lshlwapi -L-luser32 -L-lusp10

July 17, 2023

On Sunday, 16 July 2023 at 18:28:57 UTC, Cos00kun wrote:

>

Bir konuyu merak ediyorum.
SDL, DirectX, Vulkan, OpenGL, Raylib v.s... bu gibi kütüphaneler veya başka kütüphanelerin bindingslerini genelde dub paket yönetici ve dependency ile hallediyoruz. Oysa ben bundan hiç hoşlanmadım kalu beladan beri :) Şimdi diyelimki Raylib kütüphanesiyle bir kod yazdım ve
dub.json dosyamda;
............
"dependencies": {
"raylib-d": "~>4.5.1"
},
..........
..........

Elbette derlemeleri dub olmadan da yapabiliriz ama o zaman kolay olması dışında güncellik kontrolü ve/veya güncellemelerden faydalanamayız. Malum kodlar üzerinde ne kadar emek verirseniz verin her zaman bug içerecektir. Misal 2366 paketin (-bknz. https://code.dlang.org) hangisinin güncel olduğunu nasıl takip edeceksiniz?

Soruya gelince, Ferhat hocam cevap vermiş. Şahsen ben basit olanı tercih ederdim ve eklemeliyim bağımlılık diye bir sözcüğün hem anlam olarak hem de fiziki açıdan geçerliliğini yitirdiği bir dünya isterdim.

Ah şu modüler sistem ve kütüphaneler yok mu! Acaba uzaylılar da yazılım üretirken bizim teknikleri mi uygulamıştır?

Baarılar....

July 17, 2023

On Monday, 17 July 2023 at 07:54:13 UTC, Ferhat Kurtulmuş wrote:

>

dub komutunu çalıştırırlen '-v' parametresi (verbose) kullanılırsa derleyicinin aldığı bütün parametreler (-I ve -L parametreleri) konsoldan görülebilir. Böylelikle belki bir kez dub ile gerekli parametrelere baktıktan sonra, kendi yolunu bulabilirsin. Tavsiye ettiğim birşey olmasa da mesela:

dub -v

..... .....
ECFFFFA8B7C9D3DCA65A66BED2B3BADC6261199E2A4D898E0437E5C8D41DBEA6\dwt_base.lib -LD:/projects/d_projects/dwt/win-res/resource.res -L-lhid -L-ladvapi32 -L-lcomctl32 -L-lcomdlg32 -L-lgdi32 -L-lkernel32 -L-lmsimg32 -L-lole32 -L-loleacc -L-loleaut32 -L-lopengl32 -L-lshell32 -L-lshlwapi -L-luser32 -L-lusp10

Ferhat hocam çok açıklayıcı oldu çok teşekkür ederim cevabın şçin. Açıkçası bende öğrenmek amaçlı sordum yoksa muhtemelen D diline devam edebilirsem!! Dub kullanmaya devam edeceğim haliyle çok hoşnut olmasamda. Muhtemelen sizin gibi profesyonel olmadığımdan çok sevemiyorum Dub paket yöneticiyi.

July 17, 2023

On Monday, 17 July 2023 at 13:02:51 UTC, Salih Dincer wrote:

>

Elbette derlemeleri dub olmadan da yapabiliriz ama o zaman kolay olması dışında güncellik kontrolü ve/veya güncellemelerden faydalanamayız. Malum kodlar üzerinde ne kadar emek verirseniz verin her zaman bug içerecektir. Misal 2366 paketin (-bknz. https://code.dlang.org) hangisinin güncel olduğunu nasıl takip edeceksiniz?

Soruya gelince, Ferhat hocam cevap vermiş. Şahsen ben basit olanı tercih ederdim ve eklemeliyim bağımlılık diye bir sözcüğün hem anlam olarak hem de fiziki açıdan geçerliliğini yitirdiği bir dünya isterdim.

Ah şu modüler sistem ve kütüphaneler yok mu! Acaba uzaylılar da yazılım üretirken bizim teknikleri mi uygulamıştır?

Baarılar....

Salih hocam eski dost tekrar selam ederim ve cevap vermek isterim :)
Güncelleme konularının farkındayım ama ne bileyim yani böyle güzel olanakları olan bir dilin en azından şu bağımlılık konularını daha basit halletmesini beklerdim bir de ben kişisel olarak sevemiyorum bu benim hatam farkındayım :)

Uzaylılara gelince ınlar sınıf atlamış ve miras da bırakmışlar ama sanırım biz bi yerlerde hata yapıyoruz :))

D dilini ve sizleri hiç unutmadım ve gördüğünüz gibi yine kaçak geri geldi ama inan bu sefer en azından başka bir dili hatırı sayılır ölçüde öğrenerek geldim bu da bana biraz moral oluyor D dili için. Hatta Lua dilinde kendimce iyi işler başardığım için D dili için iyi bir temel olduğuna inanıyorum. Luada her zaman konuştuğumuz Mangala oyununu yazdım amatörce hatta kelime bulmaca vesaire gibi birkaç basit oyun/oyuncukta yazdım. İlgilenen olursa kaynak kodlarını yada kendisini paylaşırım. Bakalım Bu sefer söz vermiyorum size ama devam edebilirsem D diline MAngala oyununu bu sefer D ile yazmaya çalışacağım. Hatta Lua da mangala oyununu basit, orta ve zor oynayacak şekilde kısmen bir zorluk derecesi bile oluşturabildim :)