clion没有空白项目模板,需创建c++ executable后手动清空:删除main.cpp,保留并精简cmakelists.txt(含cmake_minimum_required、project、set),再添加新文件时须在cmakelists.txt中用add_executable声明并重载项目。

CLion 本身没有“空白项目”模板,但你可以通过创建空的 CMake 项目 + 手动清空内容,实现真正意义上的空白起点。 它不等同于“无构建系统”的纯文件夹,因为 CLion 依赖 CMake(或 Makefile / Gradle)来驱动编译、索引和调试。直接删掉 CMakeLists.txt 会导致项目无法加载或功能残缺。
为什么不能直接选“空白项目”?
CLion 的项目类型(C++ Executable、C Executable、Google Test 等)全基于 CMake 生成器。所谓“空白”,是指不预置业务逻辑代码,而非不带构建配置——CMakeLists.txt 是必须存在的锚点文件。你看到的 main.cpp 可以删,但 CMakeLists.txt 必须保留并至少声明 project() 和 add_executable() 或 add_library() 才能被正确识别为 C++ 项目。
手动创建最小可行空白项目
按以下步骤操作,得到一个只有骨架、无示例代码、可自由添加源文件的干净项目:
- 点击 New Project → 左侧选
C++ Executable→ 填写项目名和路径 → 点击 Create - 项目生成后,立即删除自动生成的
main.cpp(右键 → Delete → 勾选 Safe delete) - 打开根目录下的
CMakeLists.txt,删掉add_executable(...)这一行(它依赖main.cpp),只保留:cmake_minimum_required(VERSION 3.31) project(my_blank_project) set(CMAKE_CXX_STANDARD 20)
- 保存
CMakeLists.txt,CLion 会自动重载 CMake 项目;此时 CMake 工具窗口应显示 “No targets” 或仅列出 project 名,说明已无可构建目标
后续添加源文件时的关键动作
每次新建 .cpp 或 .h 文件后,必须显式将其加入构建目标,否则 CLion 不会编译它,也不会提供补全/跳转/重构支持:
- 在
CMakeLists.txt中补上对应语句,例如添加hello.cpp后,需写:add_executable(hello hello.cpp)
- 若要支持多目标(比如同时构建多个可执行文件),不要复用同一个
add_executable名,每个目标名必须唯一 - 新增文件后,右键点击
CMakeLists.txt→ Reload project,或等待右下角弹出 “Reload required” 提示并点击它
容易被忽略的细节
很多人以为删了 main.cpp 就“干净”了,结果发现新建的 foo.cpp 没有语法高亮、#include 跳转失败、甚至编译报 undefined reference to `main'——根本原因就是忘了在 CMakeLists.txt 中声明目标,或者声明了但没 reload。CLion 的智能感知完全依赖 CMake 解析结果,不是靠文件存在与否自动推断的。











