CS 各种环境配置备忘

主要记录计算机科学与技术、Windows系统等各种系统设置、环境配置的操作步骤

Jiahe Lv
Haikou, China
创建于
2 min read

Windows、office 激活

激活工具:Microsoft-Activation-Scripts
GitHub链接:https://github.com/massgravel/Microsoft-Activation-Scripts

powershell输入命令:

irm https://get.activated.win | iex

MAS

  • HWID (Digital License): Permanently activate Windows.
  • Ohook: Permanently activate Office.
  • TSforge: Permanently activate Windows, ESU, and Office.
  • Online KMS: Activate Windows/Office for 180 days (Lifetime with renewal task).

Windows 关闭更新

  1. WIN+R 输入 regedit.exe
  2. 找到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings
  3. 创建 DWORD(32 位)值
    • 选中左侧导航栏的「Settings」项(确保已展开到该层级)。
    • 右键点击右侧空白区域,在弹出的菜单中选择「新建」→ 「DWORD (32 位) 值」(无论电脑是 32 位还是 64 位,均选择此选项)。
    • 新建值的名称必须准确命名为 FlightSettingsMaxPauseDays(大小写敏感,不可修改字母顺序或增减字符)。
  4. 编辑新建注册表值
    1. 双击刚刚创建的 FlightSettingsMaxPauseDays 项,打开「编辑 DWORD (32 位) 值」窗口。
    2. 在窗口中选择「基数」为「十进制」(默认可能是十六进制,需手动切换)。
    3. 改成10 进制 然后 再输入数值(你要的天数) 然后去暂停更新 就可以停止多长时间了。
    4. 在「数值数据」输入框中,输入 36500(该数值代表最大暂停更新天数,约 100 年,可实现长期禁用)。
  5. 点击「确定」保存设置,关闭注册表编辑器(无需重启电脑,设置即时生效)。

Windows系统下基于VS Code + MSYS2的C++开发环境配置

安装VS Code

官网:https://code.visualstudio.com/

安装C++相关扩展

C/C++ Extension Pack

安装MSYS21

官网:https://www.msys2.org/

下载安装包后选择安装路径完成安装。

MSYS2 Setup

配置环境变量

在环境变量PATH(用户和系统变量都要)中添加D:\msys64\ucrt64\binD:\msys64\usr\bin

打开MSYS2命令行终端(UCRT64环境)

MSYS2 UCRT64 CLI

  1. 全量更新
pacman -Syu

pacman -Syu

首次更新后若提示重启终端,请关闭并重新打开 UCRT64 终端,再执行一次 pacman -Syu 直到没有可更新项为止。

  1. 安装gcc工具链
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

MSYS2 toolchain

pacman -S --needed mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja

MSYS2 cmake ninja

  1. 可以在cmd或powershell中使用where命令验证gcc、g++、make、cmake、ninja等是否安装成功

where check

Footnotes

  1. 使用MSYS2编译的 MinGW-w64 GCC 工具链存在的问题:

    - 你的程序 `main()` 执行完毕后,控制权会返回到 CRT(C 运行时)的启动函数 `__tmainCRTStartup`(定义在 mingw-w64-crt 源码的 `crtexe.c` 里)。
    - MSYS2 打包 gdb/gcc 时,这部分 CRT 启动代码的调试符号里**带有编译该工具链时机器上的绝对路径**(类似 `D:/mingwbuild/mingw-w64-crt-git/.../crtexe.c`),但这个源文件根本不存在于你的电脑上。
    - 如果你在 `main` 的最后一行用**单步(Step Over/Into,即 F10/F11)**继续往下走,gdb 就会试图停在 `__tmainCRTStartup` 里并显示这一行对应的源码,结果就是 VS Code 弹出/打开一个找不到内容的 `crtexe.c` 标签页。

    有人做过对比实验:用官方 MinGW-w64 编译再用 msys2 的 gdb 调试没问题,但反过来用 MSYS2 MinGW-w64 gcc 编译、用官方或 msys2 的 gdb 调试就会出现这个问题——结论是问题出在 MSYS2 版 gcc 编译出的可执行文件所带的 CRT 调试信息上,并且这不影响程序真正退出——程序其实已经正常执行完并退出(返回码 0),只是调试器界面上多出这一步很烦人。

    处理方案:

    1. 最简单:不要在 main 最后一行继续“单步”,直接“继续运行”结束调试。到达 `return 0;`(或 `}`)那一行后,不要再点 Step Over/Into,而是:
    
    	- 直接按 **F5(继续)** 让程序自然跑完退出,调试会话会自动结束;或者
    	- 直接按 **Shift+F5(停止调试)**,因为此时你的代码逻辑已经跑完,没必要再往 CRT 里单步。
    这样基本就不会再触发这个问题。
    
    2. 在 return 语句处打断点,避免多余单步。在 `main` 函数的 `return` 或最后一条语句上打断点,运行到那一行后就直接停止调试,不要继续单步穿过函数结尾。

Comments