我知道这是一个愚蠢的问题,但我是 C++ 及其开发环境的新手,我想以正确的方式学习它。
我正在尝试了解 CMake 的工作原理。使用 CLion(动态生成 CMakeList.txt
),我看到创建类时,.cpp
和 .h
都是添加到目标可执行文件。但是,当从 add_executable
调用中删除 .h
文件时,代码编译得很好,即使在 main.cpp
中有一个 #include
对该头文件的引用。
我的问题是向目标可执行文件添加 header 是否是可选的?我通常使用 VSCode,它不会为我生成 CMakeList.txt
,并且我不想养成不向目标可执行文件包含 header 的习惯(如果我应该这样做)。
最佳答案
add_executable
只需获取传递给编译器的文件列表。编译器会忽略任何具有常规 header 后缀的文件(可能是它无法识别为源文件的所有后缀)。因此,就编译而言,没有必要列出头文件,列出它们也不会引起问题。
某些 IDE 可能会将列出的头文件用于某些内部目的。我不确定克利翁是否这样做;它的行为可能是为了方便使用另一个IDE。
关于c++ - CMake向目标添加头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61057405/