CLion将头文件添加到cmake源文件是不是很糟糕?

时间:2016-01-11 07:20:24

标签: c++ cmake clion

当我使用以下对话框

使用clion创建一对新的.h和.cpp文件时

enter image description here

如果我选中“添加到目标”并“创建相关标头”,它会修改后来传递给set(SOURCE_FILES ...)的行add_executable,以便它包含new_source_file.h和{ {1}}。如果我正确理解C ++和cmake,那就糟糕了,因为头文件不应该自己编译。我对吗?这是CLION的问题吗?

2 个答案:

答案 0 :(得分:4)

将标头添加到CMakeLists.txt是正确的。

CMake足够聪明并且不会在头文件上调用编译器,但是将它们添加到CMakeLists.txt可确保它们在cmake生成的项目中被引用(例如,Visual Studio项目和代码块项目)。这反过来使得在大多数支持cmake的IDE的“项目”窗格中显示标题(而不仅仅是.cpp文件)成为可能。

如果你不添加它们,编译本身应该可以正常工作,但IDE可能不会知道这些标题是你项目的一部分,因此它们不会包含在项目窗格中,在“在项目中搜索“功能等等。

答案 1 :(得分:2)

来自CLion's FAQ

  

使用 set(SOURCE_FILES main.cpp)是CLion现在知道main.cpp包含在您的项目中的方式。   至于现在,头文件(如果他们的名字不同于   已添加到SOURCE_FILES变量的相应.cpp文件)   也应该以这种方式包含在项目中。

在您的情况下,您在设置task myTask6 { t -> description "Here's a task with a configuration block" group "Some group" doLast { println "5" } println "2" t.leftShift { println "4" } doFirst { println "3" } } myTask6 << { println "1" } 时无需指定lcm.h,但也不会受到伤害。