当我使用以下对话框使用 clion 创建一对新的 .h 和 .cpp 文件时
如果我选中“添加到目标”和“创建关联的 header ”,它会修改 set(SOURCE_FILES ...)
行,然后将其传递给 add_executable
因此它包含 new_source_file.h
和 new_source_file.cpp
。如果我对C++和cmake的理解是正确的,那就不好了,因为头文件应该不会自己编译。我对吗?这是 CLion 的问题吗?
最佳答案
在CMakeLists.txt中添加headers是正确的。
CMake 足够智能,不会在 header 上调用编译器,但将它们添加到 CMakeLists.txt 可确保它们在 cmake 生成的项目(例如,Visual Studio 项目和代码块项目)中被引用。这反过来又可以在大多数支持 cmake 的 IDE 的“项目” Pane 中显示标题(而不仅仅是 .cpp 文件)。
如果您不添加它们,编译本身应该可以正常工作,但 IDE 可能不知道此类 header 是您项目的一部分,因此它们不会包含在项目 Pane 中,在“在项目中搜索”功能等。
关于c++ - CLion给cmake源文件加上头文件不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34716059/