什么是计算机科学中的目标架构?
what is target architecture in computer science?
我是编程初学者,想下载一个好的C编译器来练习编码。于是我想到了GCC,开始了对它的小小研究。我在上面读了 Wikipedia article。这篇文章提到了一些关于目标架构的东西,我不知道。谁能告诉我这是什么意思,以及我可以参考的任何来源以获取更多信息。提前致谢。
目标体系结构 是编译器为其创建二进制文件的体系结构。
常见架构有:i386(Intel 32位)、x86_64(Intel 64位)、armv7、arm64等...
GCC 将 C 代码(在预处理阶段之后)编译为汇编代码,
汇编代码因 CPU 体系结构而异。
然后汇编代码"assembled"到一个二进制文件。
注意事项:
尽管共享相同的体系结构,但不能保证两个二进制文件在不同操作系统之间兼容。
在 Ubuntu Linux 上编译的程序(假设使用 arch x86_64)将无法在 Windows 上运行(具有相同的 arc x86_64) .
GCC 通过 "triplets" 识别架构,例如:
x86_64-apple-darwin14.0.0
i386-pc-mingw32
i686-pc-linux-gnu
格式为:
machine-vendor-operatingsystem (not always followed though)
它们包含有关体系结构和操作系统的信息。
我是编程初学者,想下载一个好的C编译器来练习编码。于是我想到了GCC,开始了对它的小小研究。我在上面读了 Wikipedia article。这篇文章提到了一些关于目标架构的东西,我不知道。谁能告诉我这是什么意思,以及我可以参考的任何来源以获取更多信息。提前致谢。
目标体系结构 是编译器为其创建二进制文件的体系结构。
常见架构有:i386(Intel 32位)、x86_64(Intel 64位)、armv7、arm64等...
GCC 将 C 代码(在预处理阶段之后)编译为汇编代码, 汇编代码因 CPU 体系结构而异。 然后汇编代码"assembled"到一个二进制文件。
注意事项:
尽管共享相同的体系结构,但不能保证两个二进制文件在不同操作系统之间兼容。
在 Ubuntu Linux 上编译的程序(假设使用 arch x86_64)将无法在 Windows 上运行(具有相同的 arc x86_64) .
GCC 通过 "triplets" 识别架构,例如:
x86_64-apple-darwin14.0.0
i386-pc-mingw32
i686-pc-linux-gnu
格式为:
machine-vendor-operatingsystem (not always followed though)
它们包含有关体系结构和操作系统的信息。