2010-11-19 2 views
30

При компиляции C++ вы, конечно же, используете компилятор для целевой платформы, для которой вы хотите скомпилировать. Есть ли компилятор C++, который нацелен на JVM (поэтому вместо использования «родного» интерфейса Java код C++ скомпилирован в Java-байтовый код)?Компиляция C++ для 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

Вы спрашиваете этот вопрос, потому что у вас есть библиотека C++, которую вы хотите использовать с Java, и вы хотите избежать использования JNI? Если это так, имейте в виду, что если ваш код на C++ использует библиотеки, специфичные для платформы, вы не сможете называть их без использования JNI ... –

ответ

22

NestedVM обеспечивает двоичный перевод для Java Bytecode. Это делается путем компиляции GCC в двоичный код MIPS, который затем переводится в файл класса Java. Следовательно, любое приложение, написанное на C, C++, Fortran или любом другом языке, поддерживаемое GCC, может быть запущено на 100% чистой Java без изменений источника.

+0

Почему бы вам не захотеть запустить C или C++-программу на виртуальной машине Java? – TheLQ

+4

@TheLQ Может быть, OP завидовал C++/CLI? – chrisaycock

+0

Я действительно нашел это самостоятельно (я вспомнил что-то о GCC MIPS, и поэтому я Googled «GCC MIPS JVM»). Но в ретроспективе это не удивительно, что это уже было в ответе на SO. – ephemient

3

Как я answerd на этой подобной SO question есть новый ребенок в городе под названием gcc-bridge. Это плагин maven и поддерживает все языки gnu, такие как c, C++, fortran.

Смежные вопросы