在windows下折腾半天还是一堆问题,最后选择了这个方案
安装WSL2
win10需要另外安装图形化界面,win11不需要,教程以win11为例。我的windows版本:
安装g++和CMake
安装g++
和cmake
sudo apt update
sudo apt install build-essential cmake
检查二者安装情况
安装eigen3
sudo apt install libeigen3-dev
安装opencv
先安装依赖包,能让我们的wsl2使用图形化窗口
sudo apt install libgtk2.0-dev pkg-config
前往opencv的github仓库下载源代码 Releases · opencv/opencv 丢进用户文件夹并解压,可以用wsl命令行也可以在windows资源管理器完成
在解压后文件夹的同级目录运行:
# Create build directory
mkdir -p build && cd build
# Configure - generate build scripts for the preferred build system
# 这里opencv是前面文件夹的名字
cmake ../opencv
# Build - run actual compilation process
make -j16
这里
cmake ../opencv
时大概率因为网络问题连不上github而失败,解决方法是在WSL Settings里面把网络模式改成Mirror
在windows这边用 wsl --shutdown
关闭wsl,再重新启动ubuntu,就可以使用windows下你开启的代理了
-j
后面跟的是编译的线程数,我这里设置的和CPU线程数一样,运行后CPU会火力全开一会,我的轻薄本跑了不到10分钟
编译无误后,安装:
sudo make install
可以用opencv_version
看看是否安装成功
导入GAMES101作业
Games101 S2021作业汇总合集:[S2021] GAMES101 作业汇总 – 计算机图形学与混合现实在线平台 和opencv源代码导入方法一样,丢进wsl解压就行了
VS Code远程WSL2
进入VS Code安装WSL插件
在远程资源管理器选择WSL目标
,然后选择我们的Ubuntu并连接
搜索安装CMake Tools
,这里是安装在WSL远程,即使本地安装过也需要重新装:
然后打开一个作业的项目文件夹
这时候会跳出来一个提示,让你选择CMakeLists.txt
文件,选择唯一的那个即可,随后又会让你选择编译器,这里我使用wsl下的g++(/mnt
路径后面的是windows下的文件映射)
这里使用第一个作业为例,点小三角形生成并运行,跳出来一个窗口就代表配置成功了
配置LSP
默认是没有代码提示的,我们可以安装lsp插件来获得语法自动补充,可以用微软提供的C/C++ Extension Pack
,但是我个人还是更喜欢使用clangd
在wsl内安装clangd server:
sudo apt install clangd
修改clangd插件设置里面的clangd路径为/usr/bin/clangd
如果以前没专门为windows配置过clangd,还需要在Arguments
下加入--compile-commands-dir=${workspaceFolder}/build
来指定项目的编译数据库的存储位置,加在远程
下就只对wsl生效,加在用户
下就是windows和wsl同时使用这个设置
在Fallback Flags
下加入--target=x86_64-linux-gnu
(不加好像也行)
进入cpp文件,我们就有语法提示了,头文件也能正常识别(如果不能就先生成CMake项目,然后重启VS Code)