正确做法是:在“创建新项目”对话框中将“语言”设为c++、“平台”设为windows,并在“项目类型”中明确选择console app模板,该模板自动生成含std::cout和return 0;的main()函数,支持ctrl+f5直接运行;若未安装“桌面开发用c++”工作负载,则console app模板不会出现,必须通过visual studio installer补全该工作负载及配套工具。

选错模板会导致项目无法编译或缺少入口点
Visual Studio 2022+ 默认不显示纯 C++ 控制台模板,直接搜“C++”可能只看到 CMake Project 或 Empty Project。这两个都**不能直接运行**:前者需要额外配置 CMakeLists.txt,后者连 main() 函数都不生成。
正确做法是:在“创建新项目”对话框中,把“语言”设为 C++,“平台”设为 Windows,再在“项目类型”里明确勾选 Console App(图标带“++”和“Console”标签)。这个模板会自动生成带 std::cout 和 return 0; 的 main(),能按 Ctrl+F5 直接运行。
- 如果只看到
Empty Project,说明安装时漏选了“桌面开发用 C++”工作负载 - 路径名含中文、空格或特殊字符(如
C:\我的项目\)会导致 MSVC 编译器报错LNK1181: cannot open input file - 项目名建议全英文、无下划线开头(如
Calculator可行,_test可能在某些构建规则下被忽略)
“桌面开发用 C++”工作负载不是可选项,是硬性依赖
VS 安装器里没勾选这项,Console App 模板根本不会出现——它不是隐藏,是压根没装。即使你手动新建 .cpp 文件,也会遇到 Cannot find compiler 或 MSB8020: The build tools for v143 cannot be found 这类错误。
补救方式只有两个:
① 重开 Visual Studio Installer → 修改当前安装 → 勾选 Desktop development with C++ → 确保子项中的 MSVC v143 - VS 2022 C++ x64/x86 build tools 和 Windows 10/11 SDK 都已安装;
② 不卸载重装,直接在命令行跑 devenv /resetuserdata 无效,必须走 Installer。
- 安装后无需重启系统,但要重启 Visual Studio 才能刷新模板列表
- 如果公司电脑策略禁用 Installer,只能换用
VS Code + MinGW-w64,但调试体验和 Windows API 支持会打折扣
刚创建的项目按 Ctrl+F5 报错“找不到 .exe”,其实是输出目录没生效
新建项目后首次运行,VS 默认把可执行文件生成到 $(SolutionDir)$(Configuration)\(如 Calculator\x64\Debug\Calculator.exe),但如果你没主动保存解决方案,或者项目名含非法字符,VS 可能静默失败,导致 Debug 文件夹为空。
检查方法:
→ 在“解决方案资源管理器”右键项目 → “属性” → 左侧导航到 常规 → 输出目录,确认值是 $(SolutionDir)$(Configuration)\;
→ 同样位置检查 目标文件名 是否为 $(ProjectName).exe;
→ 点击菜单栏“生成 → 重新生成解决方案”,看“输出”窗口是否出现 1>------ Rebuild All started: Project: Calculator, Configuration: Debug x64 ------。
- 若输出窗口只显示“已完成生成”,但没任何编译日志,说明项目未真正加载——关闭 VS,删掉
.vs文件夹和*.suo文件再重开 - 按
F5启动调试前,确保“解决方案配置”下拉框选的是Debug而非Release,否则断点不命中
想改用 C++17 或 C++20 标准?别只改项目属性里的语言标准
在项目属性中设置 C/C++ → 语言 → C++ 语言标准 为 stdcpp17 或 stdcpp20 是必要但不充分的。MSVC 的标准库头文件(如 <optional></optional>、<span></span>)依赖对应 Windows SDK 版本。比如启用 std::format,需同时满足:
① 语言标准设为 stdcpp20;
② “常规 → Windows SDK 版本” ≥ 10.0.20348.0(Win11 SDK);
③ “C/C++ → 代码生成 → 运行时库” 不能是 /MDd(多线程 DLL 调试版)与旧 SDK 冲突。
- 改完语言标准后务必清空
$(IntDir)(通常是Debug\或x64\Debug\)再重新生成,否则旧目标文件可能残留 -
stdcpp23在 VS 2022 17.11 中仍为预览状态,开启后可能触发C7542: feature is not yet implemented
实际跑通的关键就三步:装对工作负载、选对模板、确认输出路径有生成物。其他所有问题,基本都是这三步中某一步没踩实。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











