Windows配置MSVC环境

安装 Windows TerminalPowerShell

1
winget install Microsoft.WindowsTerminal Microsoft.PowerShell

安装 Visual Studio

https://visualstudio.microsoft.com/zh-hans/ 下载安装器

打开安装前,选择 使用C++的桌面开发

配置终端

命令行改为 pwsh.exe

配置主题和背景,字体等

编译器使用

参见 https://learn.microsoft.com/zh-cn/cpp/build/reference/compiler-options-listed-by-category

基本语法

1
cl [选项] 源文件 [链接选项]

主要编译选项

1. 输出类型控制

1
2
3
4
5
6
7
8
/Fe:filename    # 指定可执行文件名
/Fo:filename # 指定对象文件名
/Fm:filename # 指定映射文件名
/LD # 编译为DLL (动态链接库)
/LDd # 编译为调试版DLL
/MD # 使用多线程运行时库(DLL版本)
/MT # 使用多线程运行时库(静态版本)
/MTd # 使用多线程调试运行时库(静态版本)

2. 优化选项

1
2
3
4
/O1             # 最小化大小
/O2 # 最大化速度 (推荐)
/Od # 禁用优化 (调试时用)
/Ox # 最大优化

3. 调试信息

1
2
3
/Zi             # 生成完整调试信息
/Z7 # 生成旧格式调试信息
/DEBUG # 生成调试信息到PDB文件

4. 警告控制

1
2
3
4
5
6
7
/W0             # 禁用所有警告
/W1 # 显示严重警告
/W2 # 显示重要警告
/W3 # 显示大部分警告(默认)
/W4 # 显示所有警告
/Wall # 显示所有警告(包括系统头文件)
/WX # 将警告视为错误

5. C++标准

1
2
3
4
5
/std:c++11      # C++11标准
/std:c++14 # C++14标准
/std:c++17 # C++17标准
/std:c++20 # C++20标准
/std:c++latest # 最新标准

6. 异常处理

1
2
3
/EHsc           # 启用C++异常处理(推荐)
/EHs # 启用同步异常处理
/EHa # 启用异步异常处理

7. 预处理器选项

1
2
3
4
5
/D macro        # 定义宏
/U macro # 取消定义宏
/I directory # 添加包含目录
/E # 仅预处理到标准输出
/EP # 预处理到标准输出(无#line)

示例

1. 编译DLL

1
cl /std:c++17 /LD hutao_minhook.cpp /DEF:hutao_dll.def /Fe:hutao_minhook.dll

说明:

  • /std:c++17 - 使用C++17标准
  • /LD - 编译为DLL
  • hutao_minhook.cpp - 源文件
  • /DEF:hutao_dll.def - 指定模块定义文件(导出函数列表)
  • /Fe:hutao_minhook.dll - 输出文件名

2. 编译可执行文件

1
cl /EHsc /O2 /MT /std:c++17 hutao_injector.cpp /Fe:hutao_injector.exe

说明:

  • /EHsc - 启用C++异常处理
  • /O2 - 最大化速度优化
  • /MT - 静态链接运行时库
  • /std:c++17 - C++17标准
  • hutao_injector.cpp - 源文件
  • /Fe:hutao_injector.exe - 输出文件名

直接在命令末尾加上某lib可以链接,如 user32.lib,也可以在代码中使用 #pragma comment(lib, "user32.lib"),就不需要与指定链接文件

直接从 Developer PowerShell for VS 2022 启动 code .,再安装微软的 C/C++IntelliCode 插件,即可在vscode上使用MSVC而不需要启动 Visual Studio


Windows配置MSVC环境
https://rukkhadevata123.github.io/2025/07/09/msvc/
作者
Dawn Chirps
发布于
2025年7月9日
许可协议