1. "clang" derleyicisi "kılenk" olarak da telaffuz edilmektedir. 2. Kolayca çapraz derleme (veya başka C denemeleri) yapmak için godbolt.org u kullanabilirsiniz.
Anlatım için teşekkürler. Genelde windows üzeri C grubu ağırlıklı C# etliye sütlüye karışmadan derliyordum. Geçen yıldı galiba ffmpeg projesinin kütüphanelerinin Android ve IOS için derlenmesi gerekti, öyle uğraştırdı ki nerden düştüm bu cehenneme dedim ve başaramadan bıraktım :) Bu kütüphanelerde bir başka proje olan görüntü işleme projesi olan EMGUCV için gerekliydi.
@@tandomrandom Windowsda Windows için derlemede sorun olmadı, diğerleri için yani Android ve IOS için derlemede başarılı olamamıştım. Zaten benim büyük çaplı bir C++ projesini ilk derleyişimdi.
Her zaman ki gibi harika bir anlatım olmuş hocam. Stm32mp1 kartı aldım, distro package felan gömdüm. Şimdi ne yapmamı önerirsiniz hocam nasıl bir yol izlemem gerekir?
Teşekkürler, beğenmenize sevindim. Tavsiye vermek zor bir iş, hedeflerinizi de hesaba katmak lazım. FreeRTOS, Zephyr gibi RTOSlara bakabilir ya da Linux sistem programlama da çalışabilirsiniz, bilemedim 🤔
Aklıma gelen bir soruyu buradan sormak isterim. Güncel tüm x86 veya tüm arm mimarisi işlemcileri aynı komut setlerine mi sahiplerdir? Öyle ise performans farkı çekirdek sayısı ve frekanstan başka ne gibi değişkene bağlı olabilir?
Güzel soru. ISAlerin extensionları olabiliyor. Örneğin x86 tarafında SSE, ARM tarafında NEON gibi. Yani x86, arm gibi mimariler baz bir komut seti belirliyor, üreticiler bunları performans için genişletebiliyor. Bir de micro architecture konusu var, o ISA yı destekleyen işlemcinin nasıl yapıldığı ve performans için neleri desteklediği. Pipeline yapısı, branch prediction, out-of-order execution desteği gibi. Ayrıca işlemciden bağımsız olarak bellek ve cache organizasyonu ve hatta yongaların üretildiği teknoloji (nm) performans parametrelerini etkileyen şeyler.
vay be c içinde cross platform varmış ben bilmiyordum adamları tebrik etmek lazım mantığı nasıl kurgulamışlar acaba uygulamanın startını veren opcode bile farklı dataları nasıl okutmuşlar ilginç ve şaşırtıcı helal olsun millet neler yapıyor elma ile portakalı aynı dalda yetiştirmeye benziyor demek ki, opcodeları benzer olan platformlar için yapıyorlar herhalde yani ne bileyim beynim durdu helal olsun...
"Elma portakal" benzetmesi iyimiş :) Aslında derleyici açısından bakınca daha zor kısımlar da var. Derleyiciyi de aşama aşama çalışan bir yazılım olarak düşünürsek dili anlayıp, optimize bir kod çıkartmak başlarda olan işlemler. Bunu yaptıktan sonra hedef mimariye göre kod üretmek adeta export almak gibi bir şey, elbette etkileyici ve iki cümleyle anlatılmayacak kadar detaylı... C çok eski bir dil olduğu için cross compilation kavramını uygulayan ilk dillerden biridir.
@@onur-i0x yani bu bir üst düzey script dili değil ki, cross platform yapması kolay olsun... işlemciye göre yazılımın tüm kodlarını vermen lazım yani atıyorum bir işlemcide 128 byte kodu ret belirtir diğerinde farklı birinde bitler ters okunur diğerinde farklı yani ne bileyim kütüphaneler kullanarak yaparsın onda bir problem yok sonuçta native yazılım ama makine kodu olduğunda adı üstünde makine kodu her işlemci kendi kafasına göre bir mimariye sahiptir örnek mesela MOV AX, 8
@@ayazar Açık konuşayım ben cross platform olduğunu hiç duymadım araştırmadım bile tek dosyada exe çalıştırıyor değil mi üstadım yani farklı farklı exe dosyaları değil javadaki universal apk gibi tek exe her yere at çalışsın.. yani gerçekten yapanları tebrik ediyorum...
@@EmrahKAYNAR C'deki durum Java'dan farklı. x86 Linux için ayrı ELF, riscv Linux için ayrı ELF, Windows için de EXE üretmek gerekiyor derlerken, videoda anlatmak istediğim bu. Clang gibi derleyiciler de birer program aslında, kendisi x86 üzerinde çalışıp ARM için kod üretiyor olabilir.
Hocam biraz küçüğüm python c# c++ arduino ps javascript gibi dillerde yeterlice tecrübem de var. Ağ alanında da kendime güveniyorum ama bu bilgiyi paraya dökemiyorum. Ne yapmam gerek? Bug bounty yapmayı denemiştim birkaç kez fakat hackerone da falan hedefler fazla kompleks sistemler kullanıyor.
Hocam tamda linuxta hedef cihaz için cross compilation yapamaya çalışırken bu video geldi. 3 gündür uşraşıyorum umarım hallederim. Halledemezsem Lınkedın de size yazsam yardımcı olur musunuz?
1. "clang" derleyicisi "kılenk" olarak da telaffuz edilmektedir.
2. Kolayca çapraz derleme (veya başka C denemeleri) yapmak için godbolt.org u kullanabilirsiniz.
Gömülü sistemle henüz alakam yok. Başlık dikkatimi çektiği için bir bakayım dedim, büyüleyici bir anlatım var cidden :D
🪄🧙
Alper hocam, süper bir video olmuş, elinize sağlık.
Çok teşekkürler hocam :)
Anlatım için teşekkürler. Genelde windows üzeri C grubu ağırlıklı C# etliye sütlüye karışmadan derliyordum. Geçen yıldı galiba ffmpeg projesinin kütüphanelerinin Android ve IOS için derlenmesi gerekti, öyle uğraştırdı ki nerden düştüm bu cehenneme dedim ve başaramadan bıraktım :) Bu kütüphanelerde bir başka proje olan görüntü işleme projesi olan EMGUCV için gerekliydi.
Yakin zamanda ffmpeg i derledim gayetde rahatdi hic ugrastirmiyor. Readme dosyasini okursaniz goreceksiniz
@@tandomrandom Windowsda Windows için derlemede sorun olmadı, diğerleri için yani Android ve IOS için derlemede başarılı olamamıştım. Zaten benim büyük çaplı bir C++ projesini ilk derleyişimdi.
Çok açıklayıcı bir video olmuş 👍
Beğenmenize sevindim.
Ders gibi video olmuş elinize sağlık
Tertemiz, çok güzel bir anlatım olmuş.
Hocam ilaç gibi video. Elinize sağlık.
güzel içerik, temiz anlatım teşekkürler.
Sunumunu çok beğendim.
Güzel anlatım olmuş emeğinize sağlık
hocam ellerine sağlık
tebrik ederim alper hocam, cidden bu nüansları başta bilmeyince boşa kürek sallanabiliyor.
Teşekkürler
anlatim guzel...
Teşekkür ederim.
Her zaman ki gibi harika bir anlatım olmuş hocam. Stm32mp1 kartı aldım, distro package felan gömdüm. Şimdi ne yapmamı önerirsiniz hocam nasıl bir yol izlemem gerekir?
Teşekkürler, beğenmenize sevindim. Tavsiye vermek zor bir iş, hedeflerinizi de hesaba katmak lazım. FreeRTOS, Zephyr gibi RTOSlara bakabilir ya da Linux sistem programlama da çalışabilirsiniz, bilemedim 🤔
Hocam devamı gelsin :) arm işlemciler için birden fazla kütüphanesi olan bir projeyi derleyin :))
Bakarız, söz vermeyeyim :)
Aklıma gelen bir soruyu buradan sormak isterim. Güncel tüm x86 veya tüm arm mimarisi işlemcileri aynı komut setlerine mi sahiplerdir? Öyle ise performans farkı çekirdek sayısı ve frekanstan başka ne gibi değişkene bağlı olabilir?
Güzel soru. ISAlerin extensionları olabiliyor. Örneğin x86 tarafında SSE, ARM tarafında NEON gibi. Yani x86, arm gibi mimariler baz bir komut seti belirliyor, üreticiler bunları performans için genişletebiliyor. Bir de micro architecture konusu var, o ISA yı destekleyen işlemcinin nasıl yapıldığı ve performans için neleri desteklediği. Pipeline yapısı, branch prediction, out-of-order execution desteği gibi. Ayrıca işlemciden bağımsız olarak bellek ve cache organizasyonu ve hatta yongaların üretildiği teknoloji (nm) performans parametrelerini etkileyen şeyler.
vay be c içinde cross platform varmış ben bilmiyordum adamları tebrik etmek lazım mantığı nasıl kurgulamışlar acaba uygulamanın startını veren opcode bile farklı dataları nasıl okutmuşlar ilginç ve şaşırtıcı helal olsun millet neler yapıyor elma ile portakalı aynı dalda yetiştirmeye benziyor demek ki, opcodeları benzer olan platformlar için yapıyorlar herhalde yani ne bileyim beynim durdu helal olsun...
c en primitif dil zaten. olay syntax falan değil, compiler dizaynı. C kadar köklü ve tarihe oturmuş bir x dilini de bu şekilde güncel tutabilirlerdi.
"Elma portakal" benzetmesi iyimiş :) Aslında derleyici açısından bakınca daha zor kısımlar da var. Derleyiciyi de aşama aşama çalışan bir yazılım olarak düşünürsek dili anlayıp, optimize bir kod çıkartmak başlarda olan işlemler. Bunu yaptıktan sonra hedef mimariye göre kod üretmek adeta export almak gibi bir şey, elbette etkileyici ve iki cümleyle anlatılmayacak kadar detaylı... C çok eski bir dil olduğu için cross compilation kavramını uygulayan ilk dillerden biridir.
@@onur-i0x yani bu bir üst düzey script dili değil ki, cross platform yapması kolay olsun... işlemciye göre yazılımın tüm kodlarını vermen lazım yani atıyorum bir işlemcide 128 byte kodu ret belirtir diğerinde farklı birinde bitler ters okunur diğerinde farklı yani ne bileyim kütüphaneler kullanarak yaparsın onda bir problem yok sonuçta native yazılım ama makine kodu olduğunda adı üstünde makine kodu her işlemci kendi kafasına göre bir mimariye sahiptir örnek mesela
MOV AX, 8
@@ayazar Açık konuşayım ben cross platform olduğunu hiç duymadım araştırmadım bile tek dosyada exe çalıştırıyor değil mi üstadım yani farklı farklı exe dosyaları değil javadaki universal apk gibi tek exe her yere at çalışsın.. yani gerçekten yapanları tebrik ediyorum...
@@EmrahKAYNAR C'deki durum Java'dan farklı. x86 Linux için ayrı ELF, riscv Linux için ayrı ELF, Windows için de EXE üretmek gerekiyor derlerken, videoda anlatmak istediğim bu. Clang gibi derleyiciler de birer program aslında, kendisi x86 üzerinde çalışıp ARM için kod üretiyor olabilir.
Hocam biraz küçüğüm python c# c++ arduino ps javascript gibi dillerde yeterlice tecrübem de var. Ağ alanında da kendime güveniyorum ama bu bilgiyi paraya dökemiyorum. Ne yapmam gerek? Bug bounty yapmayı denemiştim birkaç kez fakat hackerone da falan hedefler fazla kompleks sistemler kullanıyor.
Zor bir soru :) Özellikle yaşınız küçükken bilgi birikiminizi arttırmaya yönelin bence şu aşamada paraya çok takılmayın derim.
@@ayazar kral dahada arttırmam için para lazım ücretsiz kaynaklar çok da birşey öğretmiyor.
Tamda bu konuyu düşünüyordum youtube algoritması ne düşündüğümü biliyormu acaba
🤫
Cross compile için linux içinde toolchain indirip 20 yıldır zaten yapılıyordu. Konu ne ben hiç anlayamadım.
Kavramdan bahsetmek sadece. Özellikle alana yeni başlayan arkadaşlar duymamış oluyorlar doğal olarak.
Windows 7'ye driver geliştirince x64 bende diyorum neden böyle bir uyarı veriyordu.
Hocam android kernel derleme geliştirme videoları gelecekmi
Herhalde gelmez diye düşünüyorum :)
Canavar bir pc yoksa dusunme bile
üniversite kalitesinde
Hocam tamda linuxta hedef cihaz için cross compilation yapamaya çalışırken bu video geldi. 3 gündür uşraşıyorum umarım hallederim. Halledemezsem Lınkedın de size yazsam yardımcı olur musunuz?
Kolay gelsin. Takdir edersiniz ki herkese tek tek özel mesajla yardım etmem zor ama buradan sorarsanız biliyorsam cevaplarım ya da başkası cevaplar.
@@ayazar tamamdır hocam