Android 是否有任何基于Java的C/C++;编译程序?

Android 是否有任何基于Java的C/C++;编译程序?,android,c++,linux,compiler-construction,dalvik,Android,C++,Linux,Compiler Construction,Dalvik,我知道,即使它存在,它也比用本机代码编写并编译为混凝土拱门的编译器慢N倍。但无论如何 主要目的是在android设备(arm/x86、基于linux的操作系统、dalvik jvm)上编译一些小型c/c++源文件。源代码可以在用户的android设备上创建,编译器也可以在用户的设备上工作 任何思想?< P>有,是Android上的IDE和C++编译器。一些插件使您能够使用库,比如SDL,或者使用gcc 如果您想编译非常小的源代码(1个文件,没有自定义libs),您可以使用或在智能手机上编写代码。

我知道,即使它存在,它也比用本机代码编写并编译为混凝土拱门的编译器慢N倍。但无论如何

主要目的是在android设备(arm/x86、基于linux的操作系统、dalvik jvm)上编译一些小型c/c++源文件。源代码可以在用户的android设备上创建,编译器也可以在用户的设备上工作

任何思想?

< P>有,是Android上的IDE和C++编译器。一些插件使您能够使用库,比如SDL,或者使用gcc

如果您想编译非常小的源代码(1个文件,没有自定义libs),您可以使用或在智能手机上编写代码。代码不是作为可执行文件编译的,只需看到输出(错误,C++,…)。< /P> < P>,这是Android上的IDE和C++编译器。一些插件使您能够使用库,比如SDL,或者使用gcc


如果您想编译非常小的源代码(1个文件,没有自定义libs),您可以使用或在智能手机上编写代码。代码不是编译成可执行文件,你只看到输出(错误,STDUT,…).< /P> < P>如果你的目标是在Android设备上编译C/C++文件,如果你使用的是在/Android上的C/C++文件,你仍然可以使用C++编写的C++编译器。如果你使用

,你仍然可以使用C++编写的C++编译器,经过几个星期的研究,我可以说自然界中没有这样的东西。对于android,你应该使用本机编译器,但你会有很多兼容性问题,所以准备好应用补丁,捕捉异常,深入研究数百兆字节的本机代码。

好吧,经过几周的研究,我可以说自然界中根本没有这样的东西。对于android,您应该使用本机编译器,但您会遇到很多兼容性问题,因此请准备好应用补丁、捕获异常并深入研究数百兆字节的本机代码。

我看到了几种在android设备上获得编译器的方法:

Android上的Linux
  • (此列表中唯一需要root的)
完整虚拟机
  • (基于QEMU)
编译到汇编和汇编 从C源代码到程序集
  • (生成at&t x86程序集)
从程序集到本机代码
编译到JVM字节码并解释 从C源代码到JVM字节码
JVM的JVM解释器
  • 也许你可以使用主机JVM

我看到了几种在Android设备上获得编译器的方法:

Android上的Linux
  • (此列表中唯一需要root的)
完整虚拟机
  • (基于QEMU)
编译到汇编和汇编 从C源代码到程序集
  • (生成at&t x86程序集)
从程序集到本机代码
编译到JVM字节码并解释 从C源代码到JVM字节码
JVM的JVM解释器
  • 也许你可以使用主机JVM


您不需要用Java编写编译器。您需要一个将代码编译成Java字节码的编译器。这是两件不同的事情。@AlexeyFrunze我想他是想在设备上编译文件,而不是在设备上运行。@fbafelipe事实上,你可能是对的!有一些编译器在Android上运行,但是AFAIC的实现还远远没有完成,可能还不够好。您最好的选择是获得一些“云”解决方案,该解决方案将对您进行远程编译并将结果发送给您。我的意思是我需要一个用java编写的编译器,它可以编译c/c++源代码(对于AVR,更详细地说),您不需要用java编写的编译器。您需要一个将代码编译成Java字节码的编译器。这是两件不同的事情。@AlexeyFrunze我想他是想在设备上编译文件,而不是在设备上运行。@fbafelipe事实上,你可能是对的!有一些编译器在Android上运行,但是AFAIC的实现还远远没有完成,可能还不够好。您最好的选择是获得一些“云”解决方案,该解决方案将对您进行远程编译,并将结果发送给您。我的意思是,我需要一个用java编写的编译器,它编译c/c++源代码(AVR更详细),以便在linux上使用gcc,我不需要NDK-只需使用参数执行gcc过程即可。这是不需要的,因为它需要根权限,并且依赖于平台,因为android设备可以是ARM或x86,在设备上运行本机编译器不需要根。但是,对于希望支持的不同平台,您需要多个版本。我想这可能是你最好的选择。对不起,什么是原生编译器?ndk编译器在开发人员机器上运行,然后编译的二进制文件被复制到应用程序资源中。我需要在用户设备上编译源代码,因为使用的设备能够编辑源代码。@4n本地编译器指的是用本地语言编译的编译器(在本例中为C或C++)。想法是将C++编译器移植到NDK,这样就可以在开发者计算机上编译编译器代码,然后在设备上运行编译器,这样就可以编译其他源。哦,我没有注意到。这可能是正确的方向:使用ndk编译avr gcc,使其在android设备上运行要使用gcc for linux,我不需要ndk,只需使用参数执行gcc进程即可。这是不需要的,因为它需要根权限,并且依赖于平台,因为android设备可以是ARM或x86,在设备上运行本机编译器不需要根。但是,对于希望支持的不同平台,您需要多个版本。我想这可能是你最好的选择。对不起,什么是原生编译器?ndk编译器在开发人员机器上运行,然后编译的二进制文件被复制到应用程序资源中。我需要在用户设备上编译源代码,因为使用户能够编辑源代码。