arm-linux-gnueabi toolchain vs arm-linux-androideabi toolchain.

bol*_*ano 7 linux compilation toolchain android-ndk

我可以使用arm-linux-gnueabi-*工具链为我的Android设备编译文件(例如C或C++源代码)吗?

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

aus*_*len 15

编译可能意味着不仅仅是将源代码转换为二进制代码.像GCC这样的编译器也提供了某些库,在这种情况下,libgcc用于处理硬件无法处理的内容.当编译器成为工具链时,它还提供由编程语言标准化的运行时库,类似于目标系统中提供的编程语言.在arm-linux-gnueabi-这种情况下,可能是libcarm-linux-androideabi-那是仿生的.

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

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

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