• ElonMusk.do

    就拿网络指纹技术来说,学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;
    > }
    >
    > 但环境安装过程可能难倒很多人,"错误"的复杂示例(也给上链接,都…
    主楼
  • darkstarrd

    谢谢楼主分享,vsc+mingw各种问题真是头疼死了

    #1
  • 御姐流香

    感谢大佬分享!

    #2
  • heliang614

    这是真正的高手,谢谢大佬

    #3
  • laikey.lau

    谢谢大佬分享

    #4
  • 看今朝

    佬友的分享很实用

    #5
  • 大帅哥

    还以为是那个C

    #6
  • SUMN

    感谢佬友分享

    #7
  • ElonMusk.do

    C, #CPP添加

    #8
  • ElonMusk.do

    纯水, #职场添加,CPP, OpenAI, #网络安全移除

    #9
  • 小黄

    感觉很有用!但是下载凌晨了,有空了按佬友的试试

    图片

    #10
  • 我不是娜美

    #快问快答移除

    #11
  • HsiangSun

    来学Rust

    #12
  • 张麻子

    这是真正的高手,谢谢大佬

    这是真正的高手,谢谢大佬

    #13
  • Pokeman

    我是在用visual studio 2022,主要是mfc,msvcrt

    #14
  • Leo

    感谢分享大佬厉害啊Thanks for sharing Biggie is awesome!

    #15
  • An_Ning_Ui

    我主要用mingw,当时要编译msvc的时候就编写一个全局脚本msenv.cmd清理当前mingw环境再启动vcvars64.bat就可以了进入msvc环境了

    #16

发表回复

登录后回复