我是 C++ 新手,很难理解类目标文件的创建和编译步骤。
假设我创建了 3 个文件:1. 类头文件 2. 类 cpp 文件(存在成员函数定义)3. 主 cpp 文件
/* 当我运行包含类头文件(如“#include class.h”)的主 cpp 文件时,类 cpp 文件何时被编译、目标文件创建和链接?
我遇到困难的原因是,从编译器的角度来看,当它看到主 cpp 文件时,只有头文件定义,没有成员函数定义。但是,即使在类头文件中,也没有包含类 cpp 文件。当类头文件和主 cpp 文件中都没有引用它时,编译器如何知道运行类 cpp 文件? */
让我澄清一下我的问题。 //也许我说了一些我什至听不懂的话,哈哈。
所以,基本上我是在尝试在一个名为“main.cpp”的文件中运行一个主要函数。此“main.cpp”文件包含“class.h” header (包括“class.h”)。当“class.h”中未声明成员函数时,编译器将如何执行头文件中定义的函数?我所有的成员函数声明都在“class.cpp”中,它不包含在“class.h”或“main.cpp”中。
最佳答案
我怀疑您使用的是 IDE,因为您提到运行 cpp 文件 - 编译器不知道如何运行任何东西。
您的 IDE 会为您管理这些依赖项。
当您按下“运行”时,IDE 将决定您的项目中哪些文件需要编译,编译完成后会将所有目标文件链接在一起。
如果编译和链接成功,IDE 将启动可执行程序。
如果您想更好地理解这些概念,请暂时离开您的 IDE,在命令行上完成所有编译和链接。
(这并不复杂,只是乏味。)
关于C++ 什么时候编译类目标文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28805653/