Şu anda C derlemesinde bir derleme kod derlemesi üretmekte olan bir tasarım kanıtı JIT derleyicisi yazıyorum. C'deki satır içi derleme işlevi, yalnızca derleme zamanında bilinen dize değişmezleriyle ilgilenir, bu yüzden oluşturulmuş çalışma zamanı kodumu çalıştırmak için kullanamıyorum.Dinamik olarak oluşturulmuş derlemeyi C (GNU/Linux) olarak çalıştırın
Çalışma zamanında oluşturulan makine kodu'u çalıştırmak için mmap() işlevini kullanmayı okudum, ancak mümkünse makine koduyla çalışmaktan kaçınmak istiyorum.
Herhangi bir çözümü bilen var mı? Bir dosyaya yazmayı ve söz konusu dosyada & derleyicisini çağırmayı düşündüm, ancak bu karmaşık ve yavaş olurdu.
Yani montaj kaynağı kodu oluşturduğunuzu söylüyorsunuz? Neden sadece makine kodunu oluşturmuyoruz? –
@DrewMcGowen Daha az okunabilir, test edilmesi zor ve zamanın özü olmayı tercih edersem tercih ederim, eğer mümkünse yeniden yapılandırmayı önlemek isterim. Her ne kadar zorundaysam sanki. – AlexJ136
Montaj yaymak için orada birçok kütüphane var. [gnu-yıldırım] (https://www.gnu.org/software/lightning/) [llvm] (http://llvm.org/), ... – mathk