clion点击“构建”菜单编译项目需先正确配置cmake和工具链;若显示“cmake is not configured”,说明cmakelists.txt未被识别,应确认其位于项目根目录;“toolchain not found”则需在settings→build→toolchains中手动指定编译器路径;构建卡在“running cmake”阶段多因cmakelists.txt含未定义变量或路径含中文/空格。

点击“构建”菜单直接编译整个项目
CLion 默认使用 CMake 构建系统,配置好工具链和 CMake 选项后,“构建”菜单里的命令才真正可用。点开顶部菜单 Build → Build Project(或快捷键 Ctrl+F9),CLion 就会调用 CMake 执行构建流程:生成构建目录、运行 cmake 配置、再执行 cmake --build 编译所有目标。
常见错误现象:
-
CMake is not configured:说明 CMakeLists.txt 没被识别,检查是否在打开项目时选了正确的src/CMakeLists.txt,而不是父目录或其他文件 -
Toolchain not found:即使 VS2022 或 MinGW 已安装,CLion 也可能没自动检测到,需手动在Settings → Build → Toolchains中指定编译器路径 - 构建卡在 “Running CMake” 阶段:大概率是 CMakeLists.txt 里引用了未定义的变量(如
Qt5Concurrent_DIR),或路径含中文/空格导致解析失败
只编译单个 C++ 文件(非 CMake 目标)
CLion 原生不支持“右键单个 .cpp 文件 → 编译”,但可通过 External Tools + 自定义运行配置实现类似效果。适用于快速验证算法片段、刷题或调试裸函数。
实操建议:
- 先在
Settings → Tools → External Tools添加一个工具:Program填你本地g++.exe或cl.exe路径;Arguments填-g -o $FileNameWithoutExtension$.exe $FilePath$;Working directory填$ProjectFileDir$ - 再新建一个
Run Configuration,类型选Custom Build Application,Target选刚才配的 External Tool,Executable指向生成的.exe - 这样每次切换文件,点绿色三角就能一键编译+运行,无需改 CMakeLists.txt
编译后找不到可执行文件?检查构建目录结构
CLion 的构建输出默认放在 cmake-build-xxx 子目录下(如 cmake-build-debug 或 cmake-build-RelWithDebInfo),不是项目根目录。AFSIM 等大型项目还会额外要求把 wsf_install/bin 下的 DLL 拷进该目录才能运行——否则启动就报 MSVCP140.dll 丢失 或 无法定位程序输入点。
容易踩的坑:
- 误以为“编译成功”=“能双击运行”,其实只是生成了
.obj和.lib,没生成最终.exe—— 检查 CMakeLists.txt 是否有add_executable(...)且名字匹配 - RelWithDebInfo 模式下某些插件子项目(如
wsf_oms_uci)的 CMakeLists.txt 缺少对应 build type 的条件分支,需手动补上elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - 交叉编译(如 ARM)时,可执行文件生成在远程主机上,必须用
scp下载回来,且不能直接双击运行,得通过 GDB server 启动调试
编译慢?关掉无关的 CMake 选项
AFSIM 这类框架默认启用大量模块(Qt、Python、OMS、UCI),全量编译动辄半小时以上。实际开发中往往只改其中一两个组件,没必要每次都全编。
优化方法:
- 在 CMake 配置界面(
Settings → Build → CMake)的CMake options栏加参数,例如:-DBUILD_WSF_PLUGINS=OFF -DBUILD_PYTHON_BINDINGS=OFF - 禁用 Qt 相关项前确认你没用到 GUI 功能,否则
wizard程序会启动失败 - 若只调试
wizard主程序,可单独构建它:Build → Build Selected Target → wizard,跳过其他静态库
构建目录一旦修改 CMake 选项就必须重新配置(点击右上角锤子图标旁的刷新按钮),否则旧缓存会导致开关无效。











