Windows 11 的 WSL(Ubuntu2204) 安裝OpenCV 4.5.4 (親測(cè)有效)
一、WSL 安裝
直接在 Windows Store 里搜索最新的 Ubuntu版本 22.04 版本進(jìn)行安裝;
二、編譯安裝 OpenCV
在 Powershell
里輸入 wsl
進(jìn)入環(huán)境,
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config
sudo apt install libavcodec-dev libavformat-dev
sudo apt install libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libpng-dev libjasper-dev libdc1394-22-dev
無(wú)法安裝
libjasper-dev
和libdc1394-22-dev
Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package libjasper-dev E: Unable to locate package libdc1394-22-dev
解決一:
sudo vim /etc/apt/sources.list
最后一行加入如下內(nèi)容并保存退出:deb http://security.ubuntu.com/ubuntu xenial-security main
再執(zhí)行:
sudo apt-get update
解決二:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" sudo apt update sudo apt install libjasper1 libjasper-dev
但是可能會(huì)出現(xiàn)問(wèn)題如下:
Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [99.8 kB]
Hit:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
Hit:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates InRelease
Hit:5 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports InRelease
Hit:6 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security InRelease
Err:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
Reading package lists... Done
W: GPG error: http://security.ubuntu.com/ubuntu xenial-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
E: The repository 'http://security.ubuntu.com/ubuntu xenial-security InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
解決方法如下
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.zW1sustAL5/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
gpg: key 3B4FE6ACC0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
sudo apt update && sudo apt upgrade
參考: https://blog.csdn.net/wm9028/article/details/122982116
無(wú)法安裝 libdc1394-22-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libdc1394-22-dev
問(wèn)題解答
The libdc1394-22-dev package was removed in Debian and Ubuntu after 21.10. This is because the source package it was from - libdc1394-22 - was superseded by a different package.
The package was orphaned and removed with Debian Bug #963924 because the package libdc1394 has superseded libdc1394-22.
It has its own dev package - libdc1394-dev - which will probably get you what you want/need. So install that package instead of the package you were trying to install.
安裝 libdc1394-dev即可。
sudo apt install libdc1394-dev
(一)下載 OpenCV
進(jìn)入 OpenCV 官網(wǎng) 下載對(duì)應(yīng)版本,我這里用的是 4.5.4
;
(二)編譯安裝
將下載的源碼拷貝到 WSL 系統(tǒng)里的 /home
目錄下,并解壓。
cd opencv-4.5.4
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=ON ..
make -j
sudo make install # 安裝
可能出現(xiàn)的問(wèn)題1:找不到ippcv
ippcv資源百度盤(pán) 提取碼: 8888
將下載的文件替換到 .cache
目錄下,并將文件名替換為下載的文件名。 重新編譯。
參考: https://blog.csdn.net/qq_43478260/article/details/109458079
可能出現(xiàn)的問(wèn)題2:找不到ade
OpenCV的gapi模塊的編譯依賴ADE,在OpenCV的build過(guò)程中會(huì)自動(dòng)下載ADE,因?yàn)楸粔α?,所以下載失敗,所以要手動(dòng)下載并修改相關(guān)文件;
ade資源百度盤(pán) 提取碼:8888
通過(guò)命令查看ade的md5值,并根據(jù)值修改相關(guān)文件;
md5sum ade.zip
修改文件 DownloadADE.cmake
(modules/gapi/cmake/DownloadADE.cmake) 里
set(ade_md5 ...
里面的md5值替換成剛才的值,
修改 "https://github.com/opencv/ade/archive/"
為文件路徑 file///home/usrname/opencv3rd/
ocv_download(FILENAME ${ade_filename}
HASH a d e m d 5 U R L " {ade_md5} URL " adem?d5URL"{OPENCV_ADE_URL}"
“$ENV{OPENCV_ADE_URL}”
“https://github.com/opencv/ade/archive/”
DESTINATION_DIR ${ade_src_dir}
ID ADE
STATUS res
UNPACK RELATIVE_URL)
修改完后,重新編譯。
參考: https://blog.csdn.net/wzw_2008/article/details/106944407
可能出現(xiàn)的問(wèn)題3:內(nèi)存不足
C++: fatal error: Killed signal terminated program cc1plus的問(wèn)題解決
編譯過(guò)程中,過(guò)度占用了宿主機(jī)的CPU和內(nèi)存,可以減少編譯線程;
make -j4 # 之前是 make -j 需修改為 make -j4, 可能編譯會(huì)慢很多,但是穩(wěn)
參考:
- https://blog.csdn.net/Undefinedefity/article/details/106180033
- https://www.zhihu.com/question/340599582/answer/1371691742
(三)環(huán)境變量配置與驗(yàn)證
sudo vim /etc/ld.so.conf
在最后加上一行 /usr/loacal/lib
, 完成后 ESC
再輸入 :wq
保存退出。
運(yùn)行
sudo ldconfig
然后修改 bash.bashrc
文件
sudo vim /etc/bash.bashrc
在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
然后進(jìn)行 souce
,更新環(huán)境變量
source /etc/bash.bashrc
驗(yàn)證是否安裝成功
pkg-config --modversion opencv4
輸出 4.5.4
代表安裝成功。
三、安裝Xserver, 圖形化顯示
在 wsl
里安裝 xfce4
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install xfce4
sudo apt install xfce4-session
配置環(huán)境變量
在wsl里
sudo vim ~/.bashrc
末尾添加
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
使配置生效
source ~/.bashrc
運(yùn)行命令:
startxfce4
遇到如下錯(cuò)誤
xfce4-panel: Failed to connect to session manager: Failed to connect to the session manager: IO error occured opening connection
link
this error occurs with permission issues, try: sudo -u youruser startxfce4
如果要在Windows上查看系統(tǒng),需要安裝一個(gè)Xserver,可以安裝VcXsrv,鏈接:https://sourceforge.net/projects/vcxsrv/
Windows上啟動(dòng) XLaunch
,
Display settings: One large window
How to start clients: Start no client
Disable access control: Yes:
保存完成后,下次直接點(diǎn)開(kāi)保存的文件即可打開(kāi)。
至此已經(jīng)可以在Windows11下可以看到 WSL里的Ubuntu2204系統(tǒng)和文件了。
參考
- https://blog.csdn.net/weixin_44501390/article/details/121291442
- https://blog.csdn.net/m0_51984869/article/details/127538531
- https://blog.csdn.net/Undefinedefity/article/details/106180033
四、驗(yàn)證是否顯示OpenCV
進(jìn)入到OpenCV的samples目錄下
cd ~/opencv-4.5.4/samples/cpp/example_cmake/
cmake .
make
./opencv_example
至此,終于可以在Windows11的WSL上使用Ubuntu2204愉快的玩耍OpenCV了。
五、其他
- wsl 使用了Windows里的環(huán)境變量,想要去掉
在 /etc/wsl.conf
里插入如下代碼可以不使用Windows的環(huán)境變量:
[interop]
appendWindowsPath = false
echo $PATH
可以查看環(huán)境變量是否已經(jīng)發(fā)生了變化;
如果wsl要重新啟用Windows的環(huán)境變量,那么就刪除該段代碼
參考
https://www.cnblogs.com/newber/p/14167430.html
https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configure-per-distro-launch-settings-with-wslconf
- 重啟 WSL
右鍵 Powershell
管理員身份打開(kāi),輸入下面命令文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-450906.html
#停止LxssManager服務(wù)
net stop LxssManager
#啟動(dòng)LxssManager服務(wù)
net start LxssManager
參考鏈接
https://blog.csdn.net/wm9028/article/details/122982116
https://www.cnblogs.com/newber/p/14167430.html
https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configure-per-distro-launch-settings-with-wslconf
https://askubuntu.com/questions/1407580/unable-to-locate-package-libdc1394-22-dev
https://blog.csdn.net/qq_43478260/article/details/109458079
https://blog.csdn.net/Undefinedefity/article/details/106180033
https://www.zhihu.com/question/340599582/answer/1371691742
https://blog.csdn.net/weixin_44501390/article/details/121291442
https://blog.csdn.net/m0_51984869/article/details/127538531文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-450906.html
到了這里,關(guān)于【環(huán)境配置】Windows 11 的 WSL(Ubuntu2204) 安裝OpenCV 4.5.4 (親測(cè)有效)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!