Visual Studio中CMake项目如何快速运行

陌婷小哥_6227

陌婷小哥_6227

2026-09-07

550人浏览

原创

按f5无反应或提示“未选择启动项”是因为cmake配置失败:cmakelists.txt需在根目录、含未被条件屏蔽的add_executable()、project版本≥3.10,修改后须重新加载缓存,且后台索引完成才可运行。

visual studio中cmake项目如何快速运行

直接按 Ctrl+F5(不调试)或 F5(带调试)就能运行,前提是项目已成功配置且有可执行目标。 Visual Studio 会自动识别 CMakeLists.txt 中的 add_executable() 目标,并在工具栏“启动项”下拉列表中列出。没看到可执行项?不是代码问题,大概率是 CMake 配置卡在了某一步。

为什么按 F5 没反应或报错“未选择启动项”

这不是 IDE 故障,而是 CMake 缓存未生成或目标未被识别:

  • CMakeLists.txt 必须位于打开的文件夹根目录(或子文件夹中但需手动启用“CMake 部分激活”,VS 2022 17.1+ 支持)
  • 文件里至少要有一个 add_executable(...),且不能被 if() 条件块包裹后实际未进入(比如 if(WIN32) 但在 Linux 远程配置下不满足)
  • 如果用了 project(... VERSION ...),版本号必须 ≥ 3.10(VS 内置 CMake 最低要求),低于此值会导致解析失败、无目标生成
  • 修改 CMakeLists.txt 后未触发自动重配置:可右键点击它 → “重新加载 CMake 项目”,或等状态栏提示“CMake 配置完成”再操作

如何确保“启动项”下拉列表里出现你的可执行文件

VS 不是从源码扫描,而是从 CMake 缓存中提取目标列表。关键动作是让 CMake 成功跑完一次:

Visual Studio Professional 18.8.1
Visual Studio Professional 18.8.1

Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。

下载
  • 首次打开文件夹后,观察“输出”窗口 → 切换到“CMake”选项卡,确认没有 CMake Error: 或 Parse error
  • 若卡在“正在配置 CMake 项目…”,检查 CMakeSettings.json(位于项目根/.vs/目录下)中 generator 是否合法,如 "generator": "Ninja" 或 "Visual Studio 17 2022";错误值(如拼错为 "Ninjaa")会导致静默失败
  • 右键 CMakeLists.txt → “生成 CMake 缓存” 可强制重试;成功后,“解决方案资源管理器”顶部会出现“CMake 目标视图”标签页,里面应列出所有可执行目标
  • 若目标名含空格或特殊字符(如 my app),VS 可能无法正确注册——改用下划线命名,如 my_app

不想每次点下拉菜单?设默认启动项

避免手动选,也防止误点错目标:

  • 在“解决方案资源管理器”切换到“CMake 目标视图”,右键你要运行的可执行目标 → “设置为启动项”
  • 也可在 launch.vs.json(位于 .vs 文件夹)中显式指定:"projectTarget": "MyExecutableName",这个字段必须和 add_executable(MyExecutableName ...) 的第一个参数完全一致(大小写敏感)
  • 注意:launch.vs.json 中的 projectTarget 值不能带扩展名(如不要写 MyExecutableName.exe),只写目标名
  • 设好后,F5/Ctrl+F5 就永远作用于该目标,除非你再右键另选

最容易被忽略的一点:VS 的 CMake 集成依赖后台索引完成。即使 CMake 缓存生成成功,若“解决方案资源管理器”里还显示“正在加载项目信息…”或 IntelliSense 未就绪,F5 可能仍失败。等右下角状态栏不再闪烁、且“CMake 目标视图”可展开,才是真正的就绪状态。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1116

8

vscode和visualstudio对比分析
vscode和visualstudio对比分析

VSCode是一款轻量级代码编辑器,界面简洁,支持广泛的编程语言,适合个人开发者和小团队。而Visual Studio是一款全功能IDE,界面复杂但功能丰富,适合大型项目开发和团队协作,特别是面向.NET开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.04.01

2072

10

C++ 跨平台开发
C++ 跨平台开发

本专题聚焦 C++ 在跨平台应用与工程构建中的实战应用,系统讲解 CMake 构建系统、跨平台编译配置、第三方库集成、调试技巧、静态与动态链接库管理等核心知识。通过实战案例(如跨平台工具开发、Linux与Windows编译兼容性项目),帮助学习者掌握 从环境配置到完整跨平台构建的开发能力。

2025.10.17

5986

15

c++  cmake用法
c++ cmake用法

本专题整合了c++ cmake用法相关教程,阅读专题下面的文章了解更多详细内容。

2025.10.23

1511

14

C++ 编译构建系统与CMake实战
C++ 编译构建系统与CMake实战

本专题聚焦 C++ 项目的编译与构建体系,系统讲解 CMake 的核心语法、项目结构设计、库与依赖管理、跨平台构建、调试与发布配置。通过完整项目示例,帮助开发者掌握 从源码到可执行程序的工程化构建流程,提升 C++ 项目在实际开发中的可维护性与扩展性。

2025.12.13

354

18

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

120

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

100

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

80

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

60

26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Visual Studio 性能优化指南
Visual Studio 性能优化指南

共0课时 | 0人学习

Visual Studio 企业部署手册
Visual Studio 企业部署手册

共0课时 | 0人学习

Visual Studio 扩展开发指南
Visual Studio 扩展开发指南

共0课时 | 0人学习