arm linux gnueabi工具链与arm linux AndroidABI工具链。 < >我可以使用 ARM Linux GNUEABI */code >工具链编译文件(例如C或C++源代码)吗?

arm linux gnueabi工具链与arm linux AndroidABI工具链。 < >我可以使用 ARM Linux GNUEABI */code >工具链编译文件(例如C或C++源代码)吗?,linux,compilation,android-ndk,toolchain,Linux,Compilation,Android Ndk,Toolchain,我的问题可能看起来有点傻,但我会得到与使用armlinux androideabi-*工具链编译相同的结果吗 编译可能不仅仅意味着将源代码转换为二进制代码。像GCC这样的编译器还提供了某些库,在本例中用于处理硬件无法处理的内容。当编译器成为一个工具链时,它还提供由编程语言标准化的运行时库,类似于目标系统中提供的库。在armlinuxgnueabi-的例子中,这可能是,而对于armlinuxandroideabi-来说则是 您可以生成兼容的对象文件供不同的编译器使用,这就是它的用途 您可以生成大小


我的问题可能看起来有点傻,但我会得到与使用
armlinux androideabi-*
工具链编译相同的结果吗

编译可能不仅仅意味着将源代码转换为二进制代码。像GCC这样的编译器还提供了某些库,在本例中用于处理硬件无法处理的内容。当编译器成为一个工具链时,它还提供由编程语言标准化的运行时库,类似于目标系统中提供的库。在
armlinuxgnueabi-
的例子中,这可能是,而对于
armlinuxandroideabi-
来说则是

您可以生成兼容的对象文件供不同的编译器使用,这就是它的用途

您可以生成大小巨大的静态可执行文件,它们应该可以在任何匹配的硬件/内核上工作,因为在这种情况下,工具链的目标就是这样


但如果生成动态可执行文件,则这些文件只能在支持其依赖关系的系统上运行。正因为如此,一个不是由arm linux gnueabi-静态构建的简单“hello world”应用程序将无法在Android系统上运行,因为它提供的是仿生,而不是libc。

您可以使用任何arm工具链,因为arm体系结构将适合您。(请记住32位/64位的差异)