我试图理解gcc交叉编译器背后的命名约定,但似乎有相互矛盾的答案 . 我的系统中有以下三个交叉编译器:
-
arm-none-linux-gnueabi(适用于Linux的CodeSourcery ARM编译器)
-
arm-none-eabi(用于裸机系统的CodeSourcery ARM编译器)
-
arm-eabi(Android ARM编译器)
在阅读GNU libtool手册时,它将交叉编译器命名约定指定为:
cpu-vendor-os(os = system / kernel-system)
对于我的系统中的编译器来说,这似乎并不完全准确 . GNU手册中的信息是旧的,还是编译器分销商只是停止了它?
1 回答
命名归结为:
arch-vendor-(os-)abi
例如:
x86_64-w64-mingw32
= x86_64架构(= AMD64),w64(= mingw-w64为"vendor"),mingw32(= GCC看到的win32 API)i686-pc-msys
= 32位(pc =通用名称)msys二进制文件i686-unknown-linux-gnu
= 32位GNU / linux你的例子特别是:
arm-none-linux-gnueabi
= ARM架构,没有供应商,Linux操作系统和gnueabi ABI .arm-eabi
与您说的相似,用于Android原生应用 .一个警告:Debian使用不同的命名,只是很难,所以如果你在基于Debian的系统上要小心,因为它们有不同的名称,例如 .
i686-pc-mingw32
.