2010-11-19 42 views
30

Khi biên dịch C++, tất nhiên bạn sử dụng trình biên dịch cho nền tảng đích mà bạn muốn biên dịch. Có một trình biên dịch C++ nhắm vào JVM (vì vậy thay vì sử dụng mã giao diện Java "gốc" C++ được biên dịch sang mã byte Java) không?Biên dịch C++ cho JVM

+1

http://stackoverflow.com/questions/421951/running-interpreting-c-on-top-of-the-jvm – chrisaycock

+0

http://en.wikipedia.org/wiki/Java_Virtual_Machine#C_to_bytecode_compilers – chrisaycock

+0

Bạn đang hỏi câu hỏi này bởi vì bạn có một số thư viện C++ mà bạn muốn sử dụng từ Java và bạn muốn tránh sử dụng JNI? Nếu vậy, hãy nhớ rằng nếu mã C++ của bạn sử dụng các thư viện nền tảng cụ thể, bạn sẽ không thể gọi những người không sử dụng JNI ... –

Trả lời

22

NestedVM cung cấp bản dịch nhị phân cho Java Bytecode. Điều này được thực hiện bằng cách biên dịch GCC thành một nhị phân MIPS, sau đó được dịch sang một tệp lớp Java. Do đó, bất kỳ ứng dụng nào được viết bằng C, C++, Fortran hoặc bất kỳ ngôn ngữ nào khác được GCC hỗ trợ có thể chạy trong Java thuần túy 100% mà không có thay đổi nguồn.

+0

Tại sao bạn muốn chạy chương trình C hoặc C++ trong máy ảo Java? – TheLQ

+4

@TheLQ Có lẽ OP đã ghen tị với C++/CLI? – chrisaycock

+0

Tôi thực sự tìm thấy điều này một cách độc lập (tôi nhớ điều gì đó về GCC MIPS, và vì vậy tôi Googled "GCC MIPS JVM"). Nhưng nhìn lại nó không ngạc nhiên khi nó đã được trả lời trên SO. – ephemient

3

Vì tôi có answerd về điều này tương tự SO question có một đứa trẻ mới trong thành phố được gọi là gcc-bridge. Đó là một plugin maven và hỗ trợ tất cả các laguages ​​gnu như c, C++, fortran.