- ElonMusk.do2024-11-2674067
就拿网络指纹技术来说,学C至少了解其核心库的运行机制是很重要的,可高度自定义TLS握手,不然CF盾都过不了,反代ChatGPT就更加做不到
虽然最轻松跑C环境是在Linux或者WSL上,但有时难免有需求得在windows跑,此时若链接编译些复杂项目,不搭好MSVC环境,单纯用MinGW/Clang还是会有跑不动的情况.关于MSVC环境搭建,网上有些教程可能不够全面或过时,我来做个比较新的补充
为何不用Visual Studio?看个人喜好,用惯了VSCODE不喜欢用别的IDE,想用就用不拦着.这个方法给不想用它的人,喜欢从轻量化开始,减少不可控量,用自己最熟悉的IDE效率是最高的

Visual Studio

适用于 Windows、Mac 和 Linux 的 Visual Studio 和 VS Code 下载
免费下载 Visual Studio IDE 或 VS Code。 在 Windows、Mac 上试用 Visual Studio Professional 或Enterprise 版本。
往下找到"所有下载",关键字"工具", Visual Studio 生成工具

VS包管理工具

首页不勾选,点"单个组件",分别搜索MSVC和Windows 11 SDK,选择最新版本,这样就可以做到最小化安装.
- MSVC提供编译器 cl.exe link.exe等基础构建工具
- Windows 11 SDK提供系统头文件和库,向后兼容 Windows 10
可能需要手动添加环境变量,主要是这两个目录下的bin lib include:
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC
C:\Program Files (x86)\Windows Kits\10```
默认目录结构都是一样的,最简单的方式,版本一样直接用,版本不同就粘到你编辑器,用你的版本号替换这里的版本号
Path 编辑添加
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64新建 LIB
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\lib\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x64;
新建 INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
```
简单介绍添加的这几个库用途
- um(User-Mode) : 包含了适用于Windows 用户模式开发的头文件和库
- ucrt(Universal C Runtime) : Windows 平台的通用C运行时库,提供标准C函数(如 printf、malloc)和其他核心功能
- shared : 提供 Windows 头文件和库的共享部分,是许多其他 SDK 组件的基础, 包括常见的 Windows API 头文件(如 windows.h)和一些底层支持库
- WinRT : 提供 Windows 运行时支持,用于访问现代Windows API(如 UWP 和 WinRT 组件)
- CppWinRT : 提供高效、类型安全的C++ API,通常用于 UWP 和 WinRT 应用开发
现在配置好了,刷新环境变量,检查确认cl可用,可正常导入各种头文件
附vscode使用cl的配置.vscode/tasks.json:```
{
"version": "2.0.0",
"tasks": [
{
"label": "Build and Run", // 任务名称
"type": "shell",
"command": "cl", // 调用 MSVC 编译器
"args": [
"/EHsc", // 启用 C++ 异常处理
"/Fe${fileDirname}\\${fileBasenameNoExtension}.exe", // 生成的可执行文件路径
"${file}" // 编译当前打开的文件
],
"group": {
"kind": "build",
"isDefault": true // 将此任务设置为默认任务
},
"problemMatcher": ["$msCompile"], // 配置问题匹配器以捕获编译错误
"detail": "Build and run a single C or C++ file with cl"
}
]
}
``.vscode/launch.json:``
{
"version": "0.2.0",
"configurations": [
{
"name": "Build and Run C/C++", // 调试任务名称
"type": "cppvsdbg", // 使用 MSVC 调试器
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 指定可执行文件路径
"args": [], // 如果需要,可以添加运行时参数
"stopAtEntry": false, // 是否在入口处暂停
"cwd": "${fileDirname}", // 设置当前工作目录
"console": "integratedTerminal", // 使用集成终端运行
"preLaunchTask": "Build and Run" // 运行前执行的任务
}
]
}
```按F5 编译并运行
在Windows上最好MSVC MinGW LLVM三个都装,以应对一些复杂的项目依赖情况,做好指定不会冲突
其它CMake构建工具 NASM汇编器 使用choco一起安装即可```
choco install -y mingw llvm cmake nasm> 很多人想从HelloWorld开始学习C,但电脑是windows系统,就需要额外安装C的windows环境. > 我们现在的目标就是最快速度完成HelloWorld,代码很简单: > #include <stdio.h> > int main() { > printf("Hello, World!\n"); > return 0; > } > > 但环境安装过程可能难倒很多人,"错误"的复杂示例(也给上链接,都…主楼 - darkstarrd7小时前17678
谢谢楼主分享,vsc+mingw各种问题真是头疼死了
- 御姐流香7小时前74068
感谢大佬分享!
- heliang6147小时前71668
这是真正的高手,谢谢大佬
- laikey.lau7小时前18606
谢谢大佬分享
- 看今朝7小时前12057
佬友的分享很实用
- 大帅哥7小时前6194
还以为是那个C
- SUMN7小时前74069
感谢佬友分享
- ElonMusk.do7小时前74067
C, #CPP添加
- ElonMusk.do7小时前74067
纯水, #职场添加,CPP, OpenAI, #网络安全移除
- 小黄7小时前11231
- 我不是娜美7小时前10090
#快问快答移除
- HsiangSun7小时前40299
来学Rust
- 张麻子7小时前20021
- Pokeman7小时前6481
我是在用visual studio 2022,主要是mfc,msvcrt
- Leo7小时前11413
感谢分享大佬厉害啊Thanks for sharing Biggie is awesome!
- An_Ning_Ui7小时前74028
我主要用mingw,当时要编译msvc的时候就编写一个全局脚本msenv.cmd清理当前mingw环境再启动vcvars64.bat就可以了进入msvc环境了
