# WSL 安装 Ubuntu-22.04

在 windows powershell 执行以下命令即可。

wsl --install # 安装 WSL
wsl -d Ubuntu-22.04 # 安装 Ubuntu-22.04 LTS
wsl --unregister Ubuntu # 注销 WSL 默认分支

具体的 WSL 使用指令可以 Windows powershell 中用 wls --help 查看。

# WSL 下安装 CUDA

WSL 不需要安装 Linux 版的 CUDA,只需要安装 Windows 版本的 NVIDIA 驱动程序即可。

# 安装 NVIDIA 驱动程序

NVIDIA 驱动程序安装网址

# 安装 Linu x86 CUDA Toolkit

CUDA 工具包链接
具体命令可以查看 NVIDIA 给的指令,很详细,有在线安装和离线安装等其他版本,安装可能会遭遇网络和安装源问题等不可抗力,需要多试几次。

# WSL 下安装 OpenCV

默认编译器为 GCC,这里只演示 OpenCV 基本模块,contrib 不考虑,实际我也没编译过,具体可参考的 Installation in Linux

# 下载 OpenCV

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
mv opencv-4.x opencv

改好文件名后把 OpenCV 源文件放在你认为合适的目录下,切换至 WSL 命令行界面进入 OpenCV 源文件所在目录。

# 编译 OpenCV

  1. 创建 build 目录存放编译的文件
mkdir -p build && cd build
  1. 进入 OpenCV 源文件目录并设置
cmake ../opencv
# 调用 window 底层 api
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..

参考的教程是 Linux 安装 OpenCV, 但实际上用的还是 Windows 的 api,所以需要修改一下配置。

  1. 编译
make -j8
  1. 检查
ls bin
ls lib
ls OpenCVConfig*.cmake
ls OpenCVModules.cmake

编译完后能看到 build 下的 lib 和 bin 文件夹里有文件,同时还有.cmake 文件就行了。

# 测试

这篇教程实际就是为了运行 kSVD-Image-Denoising 这个项目而写的,还需要修改一下 CMakeLists.txt 文件,即在原文件第 24 行修改以下命令。

cuda_add_executable(denoise denoise.cpp ${sparsecoding} ${kSVD} ${utilities})
# add start
target_link_libraries(denoise /usr/local/cuda-12.1/targets/x86_64-linux/lib/stubs/libcublas.so)
target_link_libraries(denoise /usr/local/cuda-12.1/targets/x86_64-linux/lib/stubs/libcusolver.so)
target_link_libraries(denoise ${OpenCV_LIBS})
# add end

libcublas.so 和 libcusolver.so 需要根据自己的实际情况找到并修改。修改完就可以在项目根目录下直接运行以下命令就行了。

mkdir build
cmake ../
make

# 参考

Install Linux on Windows with WSL
CUDA on WSL User Guide
Installation in Linux
OpenCV GTK+2.x error - "Unspecified error (The function is not implemented...)"
Error in linking cublas Cmake error

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Jelly27th 微信支付

微信支付

Jelly27th 支付宝

支付宝