新建C++项目时语言筛选无反应,是因为未安装“使用C++的桌面开发”工作负载;需通过Visual Studio Installer勾选该工作负载及可选的CMake工具、测试工具,重启VS后筛选才生效。

新建 C++ 项目时语言筛选没反应
Visual Studio 的“创建新项目”对话框里把“语言”设为 C++ 后,模板列表仍为空或全是 C# 项目——大概率是没装 C++ 工作负载。VS 安装器默认不勾选 C++ 组件,必须手动补装。
- 打开 Visual Studio Installer → 找到已安装的 VS 版本 → 点“修改”
- 在工作负载页勾选
使用 C++ 的桌面开发(含 MSVC 工具链、Windows SDK、CMake 支持) - 可选但推荐:同时勾上
CMake 工具和测试工具,避免后续跑单元测试或跨平台构建时报错 - 安装完成后重启 VS,再进“创建新项目”,
C++筛选才真正生效
头文件和库路径配不对,#include 报红或链接失败
项目属性里填 附加包含目录 和 附加库目录 是常见操作,但路径写法错误会导致编译器找不到头文件,或链接器报 LNK2019。
-
附加包含目录填的是头文件所在**文件夹路径**,不是 .h 文件全路径(比如填D:\opencv\build\include,而非D:\opencv\build\include\opencv2\cv.h) -
附加库目录同理,填的是.lib所在的**父目录**(如D:\opencv\build\x64\vc17\lib),不是具体opencv_world480.lib的路径 - 路径中尽量用
$(SolutionDir)或$(ProjectDir)这类宏,别硬写绝对路径;否则换机器或换用户就失效 - 确认配置作用域:Debug/Release、x64/x86 要分别设置,别只改了 Debug 配置却在 Release 下运行
运行时报 0xc000007b 或找不到 .dll
编译通过、生成 exe 成功,双击却弹窗报错,基本是运行时动态库没找到。这不是编译问题,而是部署环节被跳过了。
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
-
.dll必须和 exe 在同一目录,或在系统 PATH 中——最简单做法是把所有要用的.dll(比如vcruntime140.dll、opencv_world480.dll)直接复制到$(OutDir)(即输出目录,默认是x64\Debug\) - 不要依赖系统环境变量 PATH:它对双击运行无效,只对命令行启动有效;而且修改后需重启 VS 或资源管理器才刷新
- 用
Dependency Walker或Dependencies(开源替代)检查 exe 缺哪些 dll,别靠猜 - 如果用了 vcpkg,确保在项目属性里启用了
vcpkg integrate install,否则它不会自动注入 dll 搜索路径
想复用配置,但每次新建项目都得重设一遍
反复粘贴头文件路径、lib 路径、预处理器定义,容易漏、难维护。VS 提供两种机制规避:属性表(.props)和 vcpkg 集成。
- 右键项目 → “属性” → 右下角点“属性管理器” → 右键“Debug|x64” → “添加新项目属性表”,命名为
common.props - 在该表里统一配置
附加包含目录、附加库目录、附加依赖项,之后所有引用它的项目自动继承 - 更省事的是用
vcpkg:执行vcpkg integrate project后,VS 会自动生成属性表并关联,连手动加.props都省了 - 注意:属性表只对当前解决方案内项目生效;跨解决方案复用,得把
.props文件拷到通用路径并用相对路径引用
实际配置中最容易被忽略的,是配置作用域(Configuration + Platform)的切换——改完 Debug x64 的设置,忘了切到 Release x64 再同步一次,结果 Release 版本跑不起来,还怀疑是代码逻辑问题。

















