2010-08-20 15 views
11

Dự án LLVM Core bao gồm:Làm thế nào để nhúng LLVM?

  • Compiler - chuyển đổi mã nguồn để LLVM IR
  • VM - thực thi mã biên dịch IR

Làm thế nào tôi có thể nhúng VM đến một ứng dụng C++?

+1

Thông thường LLVM được sử dụng để biên dịch trực tiếp sang mã máy. Tôi không quen với phiên bản mới nhất, nhưng Apple Clang là dự án LLVM hoạt động tích cực nhất, và nó đang được tư vấn như một đối thủ cạnh tranh với GCC. – Potatoswatter

+0

@Potatoswatter: tiếc là Clang vẫn còn thiếu một chút (đặc biệt là trong các tính năng C++ 0x) nhưng tôi thực sự hy vọng. Ngoài ra, thiết kế mô-đun cũng rất hữu ích, rất nhiều người chỉnh sửa có thể hưởng lợi từ trình phân tích cú pháp của nó. –

Trả lời

7

Hãy xem ví dụ HowToUseJIT trong LLVM.

8

LLVM thực sự là một tập hợp các thư viện mà bạn có thể liên kết đến, vì vậy nó khá dễ dàng để nhúng. Thường thì LLVM nhận IR mà bạn tạo và biên dịch trực tiếp sang mã máy. Ngoài ra còn có một thư viện có sẵn để giải thích và thực thi IR cho các nền tảng không hỗ trợ biên dịch JIT.

Có một hướng dẫn khá tốt trên trang web LLVM tại đây: http://llvm.org/docs/tutorial/. Tôi đề nghị bạn đi qua đó và sau đó hỏi những câu hỏi cụ thể hơn nếu bạn có chúng.

+0

Thư viện nào chính xác? –

+2

Có khả năng bạn sẽ cần một vài trong số chúng. LLVMCore, LLVMSupport, và LLVMSystem là tối thiểu. Nó thực sự phụ thuộc vào những gì bạn muốn làm, chính xác. Đối với một danh sách hơi lỗi thời, hãy xem: http://llvm.org/docs/UsingLibraries.html –