链接和编译文件之间的C ++阶段

时间:2019-06-21 01:20:59

标签: c++ linker header-files

编辑:面向未来的观看者-请参见Ken White的评论以获取答案。 (事实证明,我提出这个问题的前提有一点缺陷,但是,这种交流可能像我一样对将来的学生有所帮助。)

我有一个包含几个cpp和几个头文件的程序。我想了解链接器链接所有这些文件之后会发生什么,并且最好找到一种查看项目的方式,就像它已经链接在一起一样

现在浏览项目目录,我看到 .o 文件,我知道它们是目标文件。我看到了各个 .cpp .h 文件以及一个 .exe 。但是,令我沮丧的是,我没有看到任何文件可以显示程序的整体性。 我可以查看一个大的.cpp文件吗?我的理解是,这种文件合并是在链接发生之​​后,编译步骤发生之前发生的。

这是一系列类似的文件(及其包含的文件),它们共同构成一个完整的程序:

文件:main.cpp

    #include "classA.h"
    #include "classB.h"

文件:classA.cpp

    #include "classA.h"

文件:classB.cpp

    #include "classB.h"

文件:classA.h

文件:classB.h

但是我要查看的是如果已经链接了at的代码的外观,例如:

文件:mystery.cpp(其中包含以下内容:)

    classA.h
    classA.cpp
    classB.h
    classB.cpp
    main.cpp

但总的来说,还有行号。

对于上下文,我在使用valgrind来检测内存泄漏时想到了这个问题,并指出错误似乎是在程序中的行号处发生的,该行号似乎太大而无法在任何单个文件中存在。 / em>

-好奇的学生

0 个答案:

没有答案