Tôi đang viết trình biên dịch JIT bằng chứng trong C, mà tại thời điểm này là tạo ra các chuỗi mã lắp ráp. Các chức năng lắp ráp nội tuyến trong C chỉ đề với các chuỗi ký tự được biết đến tại thời gian biên dịch, vì vậy tôi không thể sử dụng nó để chạy mã được tạo lúc chạy của tôi.Chạy cụm được tạo động trong C (GNU/Linux)
Tôi đã đọc về cách sử dụng mmap() để thực thi mã máy khi chạy, nhưng tôi muốn tránh làm việc với mã máy nếu có thể.
Có ai biết về bất kỳ giải pháp nào không? Tôi đã nghĩ đến việc viết nó vào một tệp và gọi trình kết nối & liên kết trên tệp đã nói, nhưng điều đó sẽ lộn xộn và chậm chạp.
Vì vậy, bạn đang nói rằng bạn tạo mã nguồn lắp ráp? Tại sao không chỉ tự tạo mã máy? –
@DrewMcGowen Tôi không thích vì nó ít dễ đọc hơn, khó kiểm tra hơn và thời gian là bản chất vì vậy nếu tôi muốn tránh tái cấu trúc nếu có thể. Mặc dù có vẻ như tôi có thể phải làm vậy. – AlexJ136
Có rất nhiều lib ở đó để phát ra lắp ráp. [gnu-lightning] (https://www.gnu.org/software/lightning/) [llvm] (http://llvm.org/), ... – mathk