【问题标题】:Is object file generated during single step compilation?单步编译期间是否生成了目标文件?
【发布时间】:2019-08-05 20:31:03
【问题描述】:

根据How does the compilation/linking process work?

在编译期间,编译器获取预处理器的输出并 从中生成一个目标文件。

另外,

编译是指对源代码文件(.c、.cc、 或 .cpp) 并创建一个“对象”文件。

例如:

如果我有 2 个文件 test1.cpptest2.cpp。我可以使用g++ -c test1.cpp test2.cpp 进行模块化编译,它会生成两个目标文件test1.otest.o

但是在单步编译期间呢?我有 1 个文件 test1.cpp。使用命令g++ test1.cpp,目录中似乎没有生成目标文件。那么在单步编译期间会发生什么?

【问题讨论】:

  • C++ 标准没有说明编译和/或链接必须如何工作。这取决于编译器和链接器的实现。
  • "使用命令 g++ test.cpp,似乎没有生成任何目标文件" - 那你需要更仔细地查看。除非编译失败,否则肯定会生成一个目标文件。
  • @NeilButterworth 争论点。 OP 没有就此询问 C++ 标准报价。
  • @JesperJuhl 用给定的命令,它不会。
  • “我想重新提出问题” - 有人阻止你吗?

标签: c++ compilation g++


【解决方案1】:

这与 g++ 命令行有关。如果你只是用

运行它
g++ file.cpp

它将代码编译成中间目标文件,然后调用链接器并创建a.out可执行文件,然后删除中间目标文件。

【讨论】:

  • 哦,我明白了.. 赞赏
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
相关资源
最近更新 更多