首页 文章

任何人都可以解释gcc交叉编译器的命名约定吗?

提问于
浏览
32

我试图理解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 回答

  • 22

    命名归结为:

    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 .

相关问题