必须先安装“使用C++的桌面开发”工作负载,否则VS无C++模板、编译器和SDK;初学者推荐空项目以避预编译头等干扰;路径勿含中文/空格;创建后须确认配置与平台下拉框匹配。

必须先装“使用C++的桌面开发”工作负载,否则后续所有操作都会卡在找不到模板或编译失败——这是90%新手第一次建项目失败的根源。
为什么新建项目时搜不到C++模板
Visual Studio 默认不带C++编译工具链。你看到的“控制台应用”“空项目”等模板,依赖于安装时勾选的“使用C++的桌面开发”工作负载。没装它,Visual Studio Installer里就压根不会部署MSVC编译器、Windows SDK头文件和项目模板。
- 打开
Visual Studio Installer→ 选中已安装的 VS 版本 → 点“修改” - 在“工作负载”页勾选
使用C++的桌面开发 - 确认右侧“安装详细信息”里至少包含
Windows 10/11 SDK和CMake 工具(可选) - 点“修改”并等待安装完成,重启 VS
重开 VS 后,在“创建新项目”对话框的语言下拉菜单里选 C++,模板才会真实出现。别信“跳过这步也能继续”的说法——缺这个,后面连 #include <stdio.h></stdio.h> 都会报“无法打开源文件”。
选“空项目”还是“控制台应用”
两者生成的底层结构差异极大,直接影响你后续加代码、配第三方库、甚至调试体验。
立即学习“C++免费学习笔记(深入)”;
-
控制台应用:自动生成main.cpp+ 预设的预编译头(stdafx.h或pch.h)、启用/EHsc异常处理、默认开启预编译头(/Yu)。适合快速验证逻辑,但改配置容易踩坑(比如关预编译头后不删对应头文件会报错) -
空项目:只建好项目容器,不生成任何源文件,也不设任何特殊开关。你手动添加.cpp文件后,main函数、运行时库链接方式、字符集等全由你定。适合学原理、接 CMake 项目、或集成 Boost/Qt 等重型库
初学者建议从 空项目 开始:右键“源文件”→“添加→新建项”→选 C++ 文件(.cpp)→命名为 main.cpp→写最简代码:
#include <iostream>
int main() {
std::cout << "Hello, world!\n";
}这样能避开预编译头、Unicode 宏、SDL 检查等隐藏开关带来的干扰。
项目名称和路径里的两个关键勾选项
在“配置新项目”页,除了填名称和位置,有两个勾选项直接影响后续协作和迁移成本:
- 勾选
将解决方案和项目放在同一目录中:生成的.sln文件和.vcxproj文件同级。这是多数开源项目的结构习惯,Git 提交时更干净,也方便用 CMake 导入 - 不勾选
为解决方案创建目录:避免多套嵌套文件夹(如MyProject\MyProject\),尤其当你把项目放D:\code\这类扁平路径下时,少一层目录意味着少一次 cd 错误
路径本身别含中文、空格或特殊符号(如 D:\我的C++项目\ 或 C:\Projects\my app\),否则某些第三方构建脚本或调试器会静默失败,错误信息里还不提示路径问题。
创建完第一件事:检查配置和平台下拉框
项目创建完成后,看 VS 顶部工具栏——那里有两组下拉框:Debug/Release 和 x64/Win32/ARM64。它们不是摆设,而是直接决定编译器传什么参数。
- 刚建完默认是
Debug+x64,但如果你的机器是旧笔记本(只有 32 位系统),或要对接某老库(只提供x86.lib),就得手动切到Win32。切完必须右键项目→“属性”→确认平台工具集和Windows SDK版本仍有效,否则生成按钮会灰掉 - 不要在
Debug配置下改优化选项(如开/O2),调试信息会丢失;也不要往Release里加/RTC1这类运行时检查,链接会失败
真正容易被忽略的是:这些下拉框选的是“当前活动配置”,但项目属性页里每个设置项都绑定着具体配置+平台组合。你在一个地方改了 附加包含目录,若没注意右上角显示的是 Debug|x64 还是 All Configurations,很可能只配了一半,切到 Release 就立刻报 LNK2019。


















