【问题标题】:How is the process from compiling a c/c++ code to executing it? [closed]从编译 c/c++ 代码到执行它的过程是怎样的? [关闭]
【发布时间】:2018-04-01 18:03:55
【问题描述】:

我是计算机科学专业的学生,​​我有几个与编译 c/c++ 代码的过程有关的问题。一个问题是,当你编译时,它是编译成汇编程序还是机器码?同时,这个汇编/机器代码是操作系统的版本吗?我最后一个问题的原因是,当你编译时,你的程序可以在同一个操作系统的不同cpu上执行。除此之外,您的程序不能在另一个操作系统中执行。这让我想知道您为操作系统生成的可执行文件中有什么以及操作系统如何处理它以便在不同的 cpu 中执行它。 在此先感谢,并对这么多问题感到抱歉。

【问题讨论】:

  • 你试过谷歌吗?
  • 第一步是决定你要使用哪种语言(没有语言叫C/C++。C和C++是两种不同的语言)。
  • 一个正确的答案需要至少一本完整的教科书。简短版本:(1)它最终成为机器语言。编译器是发出汇编语言并将其提供给单独的汇编程序,还是直接发出机器语言,是编译器的实现细节,您无需担心。 (2) 生成的机器语言的一些细节确实取决于操作系统,但 CPU 更为重要。大多数情况下,一台计算机中的所有 CPU 都是同一种种类的 CPU,因此程序可以在其中任何一个上运行而无需修改。

标签: c++ c compilation system


【解决方案1】:

我认为您可能对该过程的一些基础知识感到困惑。 编译过程在此处的 1.6 节中有很好的说明:https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

您的编译代码将用于特定的操作系统和 cpu 架构。 阅读:https://softwareengineering.stackexchange.com/questions/251250/why-do-executables-depend-on-the-os-but-not-on-the-cpu

【讨论】:

  • 谢谢。第一个链接让我不仅对编译过程有了更多了解,而且对静态库和共享库也有了更多了解。
猜你喜欢
  • 1970-01-01
  • 2012-02-22
  • 1970-01-01
  • 2011-09-23
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
相关资源
最近更新 更多