2016-01-11 112 views
2

當我創建一個新的對h和.cpp文件與克利翁下面的對話框CLion將頭文件添加到cmake源文件很不好嗎?

enter image description here

如果我檢查「添加到目標」和「創建關聯的頭」,它會修改該行set(SOURCE_FILES ...)它以後傳遞給add_executable,使得其既containes和new_source_file.hnew_source_file.cpp。如果我正確理解C++和cmake,那就很糟糕,因爲頭文件不應該自己編譯。我對嗎?這是CLion的問題嗎?

+0

有趣;我使用CMake自己並且從不在SOURCE_FILES中添加.h文件... –

回答

3

這是正確的頭添加到的CMakeLists.txt。

CMake足夠智能,並且不會在頭上調用編譯器,但將它們添加到CMakeLists.txt可確保它們在由cmake生成的項目中引用(例如,Visual Studio項目和代碼塊項目) 。這反過來可以在大多數支持cmake的IDE的「項目」窗格中顯示標題(而不僅僅是.cpp文件)。

如果不將它們添加,編輯本身應該工作正常,但IDE可能不會知道這樣的標題是您的項目的一部分,因此他們將不會被包含在項目窗格中, 「在項目中搜索」功能等。

2

CLion's FAQ

使用集(SOURCE_FILES main.cpp中)是克利翁現在怎麼知道的main.cpp包含在你的項目中。 至於現在,頭文件 也應包含在這樣的項目(在他們的名字從已經添加到SOURCE_FILES變量 適當.cpp文件不同)。

對於您的情況,您在設置SOURCE_FILES時無需指定lcm.h,但它也不會造成傷害。