CMake add_executable()使用.cpp文件还是.hpp文件?

时间:2019-07-10 19:03:49

标签: c++ build cmake

我已经在该网站上阅读了关于add_executableCMake函数用法的一系列问题,但是没有找到我的困惑的准确答案。

我的问题是为什么我们只在.cpp函数中添加add_executable个文件而不添加.hpp文件?

我知道头文件就像相应的.cpp文件中的函数和类的“索引”。但是,如果我们不将它们包括在add_executable函数中,那么它们在构建过程中如何使用?

例如,当另一个源文件导入A.hpp时将使用A.hpp文件吗?但是然后A.hpp不在add_executable函数中...程序如何知道在哪里可以找到A.hpp

谢谢!

1 个答案:

答案 0 :(得分:2)

头文件,通常 具有.h或.hpp扩展名,尽管并非总是如此-例如,C ++标准库头没有扩展名-由编译器“复制粘贴”到每个.cpp中(或.C或.cc)具有#include指令来包含文件。

因此,构建最终可执行文件时,诸如CMake之类的构建系统不必了解它们-它们的内容已经通过将它们的代码文字包含在.cpp文件中来解决了。

但是,在指定依赖项时,构建系统需要了解这些文件-确保在更新这些文件中的任何文件时重新构建整个应用程序,并提供编译命令的正确包含路径。