1. 目的
Win11 可以使用 WSL2 里的 ubuntu,某种程度上相当于双系统:
- 相比于 ubuntu 系统 + 安装虚拟机windows/远程连接windows要更轻量
- WSL2 的磁盘和 Windows 是共享访问的,有时候C/C++工程要跨平台编译,可以原地编译,而不是 “拷贝->编译->回来改” 等折腾方式
- WSL2 里的 ubuntu 22.04 可以用图形界面, 例如
cv::imshow()
能在 windows 上显示 - WSL2 里的 ubuntu 里的 docker, 相比使用 Windows 的 docker 更简单方便
2. 制作启动镜像
下载 Win11 镜像文件最新版
例如
Win11_23H2_Chinese_Simplified_x64v2.iso 。
下载系统烧录工具
例如
rufus.exe。
烧录 Win11 镜像到U盘
需要U盘容量大于8G且内容为空(否则覆盖了)。
例如
拷贝 Win11_23H2_Chinese_Simplified_x64v2.iso 和 rufus.exe 到 Win10 上
这个 Win10 是我先前用另一个 U盘安装的,尝试升级到Win11但由于激活始终失败导致升级失败
双击 rufus.exe ,选择 .iso, 选择 U盘, 烧录
3. 从U盘安装 Win11
重启电脑,从U盘启动。
例如
联想笔记本电脑, 开机后按F2进入 BIOS/UEFI 界面, 把U盘启动挪到第一个
点击右上角退出,选择“保存并退出”
等待自动重启并自动选择U盘进行启动
选择系统安装到的驱动器
例如
我选择全新安装,删除了原有所有磁盘
整个磁盘只有一块C盘,选它
设置预期的用户名
建议断网方式设定。
例如
安装程序提示网络连接时,按 Shift + F10 调出 cmd 窗口
输入 oobe\bypassnro 跳过联网
会自动重启并重新提示 “选择语言” 等选项,然后提示输入用户名
输入预期的名字, 建议是英文或带有数字,不要带中文
如果选择了联网,会提示使用微软账号登录,会创建微软账号邮箱前5个字母作为用户名,如 C:/Users/zchri
。这个英文名字很难改为预期的名字,通常以重新安装系统、断网设置为最终解决方案。
4. 系统安装后的基本设置
安装无线网卡驱动
从另一台电脑,下载驱动人生万能网卡版, 如 DriveTheLife_2095_netcard_8_16_37_92 。
U盘拷贝到当前电脑,安装。
显示文件后缀和隐藏文件
安装基本开发工具
- git for windows
- VSCode
- Visual Studio 2022
- 比较工具: Beyond Compare
- 解压软件 7zip
- 文件查询软件 Everything: 下载 - voidtools
- 内容查询软件 Total Commander: https://totalcommander.ch/1103/tcmd1103x64.exe
配置使用 winget
尝试使用 Winget 安装一些软件.
安装 winget: 通过 Windows Store(需要登录微软账号),或者从 github release 页面 下载 mixbundle 文件,如 Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle, 点击安装。
安装后如下框框直接忽略,它意思是已经安装了
运行 winget 命令,如果提示:
则需要把 %LOCALAPPDATA%\Microsoft\WindowsApps
加入 PATH 环境变量.
换源 (ref: 如何使用 winget 包管理器:搜索、安装、导入导出和更换国内源等_winget换源-CSDN博客)
winget source remove winget |
|
winget source add winget https://mirrors.ustc.edu.cn/winget-source |
查询软件:
安装软件: 按照查询结果中的 ID 列做安装
{ {uploading-image-895456.png(uploading...)}}
winget install Kitware.CMake |
|
winget install Neovim.Neovim |
|
winget install Ninja-build.Ninja |
|
winget install DimitriVanHeesch.Doxygen |
|
winget install Notepad++.Notepad++ |
|
winget install --id SomePythonThings.WingetUIStore --rainbow |
ref:
github ssh key 配置
用于克隆私有仓库。
新增 SSH 密钥到 GitHub 帐户 - GitHub 文档
6. 常用快捷键
Win-x, I
打开一个新的终端Win-x, A
打开一个新的管理员终端
7. 安装配置 WSL2
安装 WSL2
管理员权限打开 powershell:
wsl --install |
8. 卸载 onedrive
https://support.microsoft.com/zh-cn/office/关闭-禁用或卸载-onedrive-f32a17ce-3336-40fe-9c38-6efb09f944b0
9. 命令行输入Python弹出Windows Store?
原因是 %LOCALAPPDATA%\Microsoft\WindowsApps
路径出现在了 python.exe
的路径之前。
解决方法是调换顺序, 确保 python.exe
所在路径在 PATH 中先出现。
Windows 的 PATH, 包括系统 PATH 和用户 PATH两个, 系统PATH先被使用,用户PATH后被使用。我现在都放到用户PATH里,按如下顺序,输入python时会使用python.exe:
10. 开启 PowerShell 执行 .ps1
脚本的权限
有不止一个 PowerShell。 需要分配添加权限 ( about_Execution_Policies
)
以管理员权限打开 PowerShell, 执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned |
以管理员权限打开 "Developer PowerShell for VS 2022", 执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned |
11. Visual Studio 操作 CMake 工程
11.1 打开基于 CMake 构建的工程
先确保工程根目录有 CMakeLists.txt 文件。
然后用 VS2022 打开这个目录。
11.2 设置运行/调试参数
msbuild 构建的工程,可以右键工程属性进行设定。
cmake 构建的工程,底层是用 ninja 作为生成器, 不生成 .vcxproj 文件。 需要在 .json 文件里设定。 进入 .json 文件的方式,是在 CMake 视图下, 右键:
增加 "args": []
字段,填入参数
{
|
|
"version": "0.2.1", |
|
"defaults": {}, |
|
"configurations": [ |
|
{
|
|
"type": "default", |
|
"project": "CMakeLists.txt", |
|
"projectTarget": "Tutorial.exe", |
|
"name": "Tutorial.exe", |
|
"args": [49] |
|
} |
|
] |
|
} |
11.3 切换 MD/MT
TODO