Ubuntu20.04 軟件安裝大全
前言
最近在自己主機(jī)上安裝了雙系統(tǒng),記錄下自己在Ubuntu20.04系統(tǒng)中安裝的軟件及遇到的問題,方便下次查看,安裝的軟件大多是跟深度學(xué)習(xí)相關(guān)的以及個(gè)人平時(shí)習(xí)慣使用的,僅供自己參考。
這里分享下博主安裝過程中的軟件安裝包下載鏈接[pwd:yolo]??????
1. Windows和Ubuntu雙系統(tǒng)安裝
參考自UP主機(jī)器人工匠阿杰的Windows和Ubuntu雙系統(tǒng)的安裝和卸載
描述:安裝流程非常詳細(xì),UP主演示的是筆記本,而博主是主機(jī),在BIOS界面相差較大,安裝完成后存在一個(gè)小bug,但不影響使用。下面只說下流程中博主操作不同的地方,大家務(wù)必根據(jù)自己的實(shí)際情況來。
1.1 下載Ubuntu系統(tǒng)鏡像
博主并沒有選擇從Ubuntu官網(wǎng)下載,而是選擇從清華大學(xué)開源軟件鏡像站下載,不用訪問外網(wǎng),速度快。清華大學(xué)開源鏡像站Ubuntu-releases網(wǎng)址:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/
選擇你想要安裝的Ubuntu版本(比如20.04),點(diǎn)擊下載.iso
為結(jié)尾的藍(lán)色字體即可(比如ubuntu-20.04.6-desktop-amd64.iso)
如果不會操作的可查看這篇Ubuntu系統(tǒng)下載(清華大學(xué)開源軟件鏡像戰(zhàn))博客的圖文描述
1.2 磁盤分區(qū)
博主選擇的是分區(qū)方案一,將/home掛載節(jié)點(diǎn)和/根掛載節(jié)點(diǎn)分開。
博主有兩塊硬盤,一個(gè)3TB的機(jī)械和一個(gè)1TB的的固態(tài),我從機(jī)械硬盤中壓縮了500GB的空間(即512,000MB)和固態(tài)硬盤中壓縮了250GB的空間(即256,000MB),我將固態(tài)硬盤的250個(gè)GB用做引導(dǎo)區(qū)、內(nèi)存交換分區(qū)以及/根掛載節(jié)點(diǎn),將500GB的空間用做/home掛載點(diǎn)(主要我感覺/根掛載節(jié)點(diǎn)像系統(tǒng)盤,所以分配的是固態(tài),而/home掛載點(diǎn)像非系統(tǒng)盤,所以分配的是機(jī)械)
博主分區(qū)秉承一個(gè)原則,能多分就多分,所以和UP主的分配不同(根據(jù)自己實(shí)際情況來)。具體如下:
分區(qū) | 大小 |
---|---|
引導(dǎo)區(qū) | 5GB(5,120MB) |
內(nèi)存交換分區(qū) | 40GB(40,960MB) |
/根掛載節(jié)點(diǎn) | 205GB(209,920MB) |
/home掛載節(jié)點(diǎn) | 500GB(512,000MB) |
1.3 GPT分區(qū)安裝Ubuntu
博主是微星主板(F11按鍵進(jìn)入啟動選項(xiàng)),按鍵盤的Delete按鍵進(jìn)入BIOS,在BIOS中修改兩個(gè)地方,一個(gè)是將修改啟動項(xiàng)目讓U盤作為啟動項(xiàng),一個(gè)是關(guān)閉安全引導(dǎo)
- 在BIOS的主界面中,有一個(gè)Boot Priority,可以看到有一個(gè)USB和一個(gè)硬盤圖標(biāo)是亮著的,將亮著的USB拖到最前面即可
- 可以參考UP主硬件茶談的WIN10系統(tǒng)安裝教程,將U盤作為啟動項(xiàng)
- 在BIOS的主界面中,有一個(gè)SETTINGS,點(diǎn)擊進(jìn)去,選擇安全,選擇安全啟動,禁止。(BIOS中的安全引導(dǎo)一定要關(guān)閉,不然后續(xù)顯卡驅(qū)動無法安裝)
- 退出保存更改即可
1.4 系統(tǒng)完成后的一些設(shè)置
啟動菜單的默認(rèn)項(xiàng)
博主并沒有選擇設(shè)置
時(shí)間同步
打開一個(gè)終端,執(zhí)行如下指令:
sudo apt install ntpdate
sudo ntpdate time.windows.com
sudo hwclock --localtime --systohc
1.5 遇到的一些小bug
在博主使用的過程中主要存在兩個(gè)bug
bug1:Ubuntu重啟后無法進(jìn)入到grud的選擇界面,直接進(jìn)到Ubuntu界面,但是關(guān)機(jī)再開機(jī)可以
解決方案:在Ubuntu中打開grub,將Timeout時(shí)間修改為20,具體指令如下:
sudo gedit /etc/default/grub
將第8行的GRUB_TIMEOUT
修改為20
GRUB_TIMEOUT=20
保存并退出,更新配置,指令如下:
sudo update-grub
重啟后即可進(jìn)入到grub界面
bug2:Ubuntu重啟后分辨率偶爾會變得非常小,圖標(biāo)變得非常大
解決方案:未解決,只能通過重啟
2. 換源
參考自Ubuntu配置apt安裝源為清華源、Linux下配置pip為國內(nèi)清華源
描述:安裝軟件時(shí)最好先進(jìn)行換源,確保后續(xù)軟件在下載過程中不會存在網(wǎng)絡(luò)問題,apt換源博主是直接在Ubuntu的設(shè)置中完成的,也可以按照上面的方式進(jìn)行修改,配置流程按照上文走沒有問題,下面簡單過一遍
2.1 apt換源
點(diǎn)擊系統(tǒng)中的設(shè)置(Settings),點(diǎn)擊最下面的關(guān)于(About),點(diǎn)擊Software Updates
在第一欄Ubuntu Software頁面中,前四個(gè)main,universe,restricted,multiverse都打勾上,找到Download from,選擇=>Others=>China=>mirrors.aliyun.com(阿里源)或者mirrors.tuna.tsinghua.edu.cn(清華源),點(diǎn)擊確認(rèn),輸入自己的密碼,完成。
換源成功后打開終端,執(zhí)行如下語句:
cat /etc/apt/sources.list
在終端上會打印apt的源,可以看到原始的Ubutnu的源會被替換成之前選擇的阿里源或者清華源
2.2 pip換源
首先打開終端使用小寫的ll
查看所有隱藏文件夾和文件,看是否存在**.pip**文件夾,如果沒有,則使用下面命令創(chuàng)建:
mkdir .pip
cd .pip/
然后通過vim pip.conf
創(chuàng)建配置文件,指令如下:
sudo vim pip.conf
添加如下內(nèi)容(這里添加清華源,其他的也可以)
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
最后Esc,:wq保存并退出,結(jié)束配置
3. 顯卡驅(qū)動安裝
參考自:拯救者Y9000K2021H在ubuntu18.04安裝顯卡驅(qū)動、Ubuntu卸載Nvidia驅(qū)動和安裝最新驅(qū)動
描述:顯卡驅(qū)動安裝主要參考文章1,流程按照上面走沒有問題,博主顯卡為RTX3060,切記在安裝顯卡驅(qū)動的時(shí)候要在BIOS中將安全啟動關(guān)閉,具體操作可看1.3小節(jié)內(nèi)容
3.1 卸載顯卡驅(qū)動
進(jìn)行該步目的是防止系統(tǒng)中已經(jīng)存在舊版本的驅(qū)動,或者存在沒有完全安裝成功的驅(qū)動。
在終端輸入如下指令:
sudo apt-get purge nvidia*
3.2 準(zhǔn)備工作
點(diǎn)擊系統(tǒng)中的設(shè)置(Settings),點(diǎn)擊最下面的關(guān)于(About),點(diǎn)擊Software Updates
- 在第一欄Ubuntu Software頁面中,前四個(gè)main,universe,restricted,multiverse都打上勾,找到Download from,選擇=>Others=>China=>mirrors.aliyun.com,點(diǎn)擊確認(rèn),輸入自己的密碼,完成。(該步主要是換源,和之前的apt換源一致)
- 在第二欄Other Software頁面中,將Canonical Partners勾選上
- 在第三欄Updates頁面中,將Automatic check for updates修改為Never
3.3 驅(qū)動安裝
本次采用的方式是使用圖形驅(qū)動程序PPA存儲庫完成NVIDIA驅(qū)動程序的快捷安裝工作。
1.將ppa存儲庫添加到當(dāng)前系統(tǒng)當(dāng)中,指令如下:
sudo add-apt-repository ppa:graphics-drivers/ppa
2.更新軟件列表,指令如下:
sudo apt-get update
3.查看檢測到的驅(qū)動程序,指令如下,推薦下載帶有recommended標(biāo)志的驅(qū)動
sudo ubuntu-drivers devices
4.根據(jù)第3步檢測到的驅(qū)動,選擇一個(gè)合適的版本號(博主選擇的是510),安裝指令如下:
sudo apt install nvidia-driver-510
執(zhí)行完成之后執(zhí)行命令sudo reboot重啟
3.4 驗(yàn)證
重新啟動之后在命令輸入nvidia-smi
,如果出現(xiàn)對應(yīng)的驅(qū)動版本和CUDA版本說明安裝成功。
同時(shí)可以點(diǎn)擊設(shè)置(Settings),點(diǎn)擊最下面的關(guān)于(About),查看下Graphics這一欄是否已經(jīng)變?yōu)?strong>NVIDIA Corporation,如果是,代表安裝全部完成。
4. VScode安裝
描述:Ubuntu20.04安裝VScode較簡單,按照下面步驟來就行
4.1 安裝包下載
去官網(wǎng)選擇Ubuntu的.deb包下載即可,外網(wǎng)下載慢,需要代理,大家可以在Windows下面通過代理下載好后傳到Ubuntu下面。
VScode官網(wǎng)下載鏈接:https://code.visualstudio.com/Download
先cd到安裝包路徑下,然后進(jìn)行安裝即可,指令如下:
cd Downloads
sudo apt get install ./code_1.77.3-1681292746_amd64.deb
sudo dpkg -i ./code_1.77.3-1681292746_amd64.deb
4.2 插件下載
大家根據(jù)自己的需求來就行,下面是博主下載的一些插件
- Chinese(Simplified):中文簡體
- python:Python語言擴(kuò)展
- C/C++:C/C++語言擴(kuò)展
- Remote Development:遠(yuǎn)程SSH
- vscode-cudacpp:CUDA擴(kuò)展
- CMake Tools:CMakeLists.txt擴(kuò)展
4.3 常用設(shè)置
通過Ctrl+鼠標(biāo)滾動改變字體大小
打開設(shè)置 => 輸入"editor.mouseWheelZoom" => 勾選上
5. 百度網(wǎng)盤安裝
描述:經(jīng)常需要將Windows和Ubuntu的文檔相互傳遞,通過U盤有時(shí)候不方便,還是選擇安裝個(gè)百度網(wǎng)盤,安裝流程較簡單,按照下面的步驟就行
去官網(wǎng)選擇Linux的.deb包下載即可
百度網(wǎng)盤官網(wǎng)下載鏈接:https://pan.baidu.com/download#linux
先cd到安裝包路徑下,然后進(jìn)行安裝即可,指令如下:
cd Downloads
sudo dpkg -i ./baidunetdisk_4.17.7_amd64.deb
6. Google Chrome安裝
參考自如何在 Ubuntu 20.04 上安裝 Google Chrome 網(wǎng)絡(luò)瀏覽器
描述:博主習(xí)慣使用Chrome瀏覽器,有時(shí)候可以打開一些關(guān)閉的標(biāo)簽頁,有時(shí)可以收藏一些標(biāo)簽等比較方便的功能,安裝流程按上面的文章走即可,下面簡單過一遍
6.1 安裝包下載
進(jìn)入官網(wǎng),點(diǎn)擊下載Chrome,選擇64位.deb(適用于Debian/Ubuntu)
Google Chrome官網(wǎng)下載鏈接:https://www.google.cn/intl/zh-CN/chrome/
先cd到安裝包路徑下,然后進(jìn)行安裝即可,指令如下:
sudo apt install ./google-chrome-stable_current_amd64.deb
6.2 常用設(shè)置
Chrome標(biāo)簽頁設(shè)置
添加的標(biāo)簽頁并沒有在菜單欄中顯示,可根據(jù)下面的方法修改
點(diǎn)擊右上角的三個(gè)點(diǎn),選擇Booksarks,點(diǎn)擊Show bookmarks bars即可
搜索引擎選擇設(shè)置
每次搜索的時(shí)候,默認(rèn)使用Google搜索引擎,由于沒有代理,所以無法使用,修改為bing,修改方法如下
點(diǎn)擊右上角的三個(gè)點(diǎn),選擇Settings,選擇Search engine,將Google選項(xiàng)修改為Bing
簡體中文設(shè)置
未解決
博主嘗試選擇Settings中的Languages,在Preferred languages中Add languages添加簡體中文,并Move to the top,然而并不管用
7. 截圖工具安裝
參考自snipaste替代品 & Linux截圖解決方案-截圖、貼圖工具Flameshot
描述:在記錄問題時(shí)經(jīng)常需要截圖,而Windows的截圖貼圖神器snipaste在Linux下并不支持,所以找了一個(gè)替代品Flameshot,安裝流程可按照上面的文章走,下面簡單介紹下
7.1 安裝
Ubuntu下安裝非常簡單,打開終端執(zhí)行如下指令:
sudo apt install flameshot
7.2 配置
在Show Application中找到flameshot,點(diǎn)擊圖標(biāo)打開(打開后右上角會出現(xiàn)對應(yīng)小圖標(biāo)),點(diǎn)擊小圖標(biāo),選擇Configuration配置,大家按照上文的說明和自己喜好自行配置即可。
博主在General選項(xiàng)中,關(guān)閉了show help message
幫助信息并打開了Launch at startup
開機(jī)自啟動選項(xiàng)。
7.3 設(shè)置快捷方式
將截圖局部快捷鍵設(shè)置為ctrl+alt+a
在Settings => Keyboard Shorcuts中,點(diǎn)擊最下方的加號,添加Custom Shortcus(自定義快捷鍵)
-
1.快捷鍵名詞(Name):自定義即可
-
2.命令(Command):如下,–path后面跟的是保存的截圖路徑
flameshot gui --path /home/jarvis/Pictures/Screenshots
-
3.快捷鍵(Shortcut):將局部截圖快捷鍵設(shè)置為
ctrl+alt+a
8. Typora安裝
參考自Linux免費(fèi)安裝Typora
描述:經(jīng)常需要記錄一些問題,非常喜歡Typora這款Markdown編輯器,可以選擇去官網(wǎng)下載最新版本并購買激活,博主這里使用的是老版本免費(fèi)的Typora,夠用了,安裝流程按照上文走就行,這里主要介紹下主題和個(gè)人的一些設(shè)置
8.1 vim安裝
vim安裝指令如下:
sudo apt-get update
sudo apt-get install vim
8.2 Typora安裝
將安裝包下載好后,cd到安裝包目錄下進(jìn)行安裝,指令如下:
cd Downloads
tar xzvf Typora-linux-x64.tar.gz
cd bin
sudo cp -ar Typora-linux-x64 /opt
cd /opt/Typora-linux-x64/
#啟動
./Typora
為了在任意位置啟動,我們設(shè)置下環(huán)境變量
sudo vim ~/.bashrc
打開.bashrc配置文件,添加:
#Typora環(huán)境變量
export PATH=$PATH:/opt/Typora-linux-x64
source一下,讓配置生效
source ~/.bashrc
OK了,可以在任意位置啟動typora
./Typora
添加桌面快捷方式
cd /usr/share/applications
sudo vim typora.desktop
添加以下內(nèi)容:
[Desktop Entry]
Name=Typora
Comment=Typora
Exec=/opt/Typora-linux-x64/Typora
Icon=/opt/Typora-linux-x64/resources/app/asserts/icon/icon_256x256.png
Terminal=false
Type=Application
Categories=Developer;
重啟電腦就ok了
右鍵打開
sudo gedit ~/.config/mimeapps.list
添加如下內(nèi)容:
text/markdown=typora.desktop
8.3 偏好設(shè)置
有一些設(shè)置可以根據(jù)個(gè)人習(xí)慣調(diào)整
- 1.語言設(shè)置
- File(文件) => Preference(偏好設(shè)置) => General(通用) => Language(語言) => 簡體中文
- 重啟Typora
- 2.狀態(tài)欄顯示
- 文件 => 外觀 => 狀態(tài)欄 => 顯示狀態(tài)欄(勾選上)
- 文件 => 外觀 => 側(cè)邊欄 => 側(cè)邊欄的大綱視圖允許折疊和展開(勾選上)
- 3.拼寫檢查
- 文件 => 編輯器 => 拼寫檢查 => 不使用拼寫檢查
- 4.Markdown
- 文件 => Markdown => Markdown 擴(kuò)展語法(全勾選上)
- 文件 => Markdown => 代碼塊 => 顯示行號(勾選上)
- 重啟Typora
8.4 主題
下載
主題下載自https://github.com/liangjingkanji/DrakeTyporaTheme
主題使用
-
通過文件 => 偏好設(shè)置 => 外觀 => 主題 => 打開主題文件夾 打開theme目錄
-
下載好的壓縮包解壓后將目錄內(nèi)的所有文件復(fù)制到theme目錄
-
重啟Typora,選擇菜單欄 => 主題即可
字體大小設(shè)置
- 通過文件 => 偏好設(shè)置 => 外觀 => 主題 => 打開主題文件夾 打開theme目錄
- 在theme目錄中找到drake文件夾下的font.css用于配置自定義字體
- 在font.css最后有字體大小、行間距等配置,根據(jù)自己喜好設(shè)置即可
- 博主在這里將–text-size大小 由12px修改為18px
- 重啟Typora
9. Pycharm安裝
參考自ubuntu20.04安裝Pycharm2021
描述:Pycharm安裝較簡單,按照上文的步驟就行
9.1 安裝包下載
進(jìn)入Pycharm官網(wǎng)下載Linux版本社區(qū)版本的.tar.gz壓縮包
Pyacharm官網(wǎng)下載鏈接:https://www.jetbrains.com/pycharm/download/#section=linux
先cd進(jìn)入到安裝包目錄,先解壓,指令如下:
cd Downloads
tar -xzf pycharm-community-2023.1.tar.gz
創(chuàng)建文件夾
sudo mkdir /opt/pycharm
移動文件夾
cd download
sudo mv pycharm-community-2023.1.tar.gz /opt/pycharm
安裝
sh /opt/pycharm/pycharm-community-2023.1.tar.gz/bin/pycharm.sh
將I confirm that I have read and ...
勾選上,點(diǎn)擊continue即可
創(chuàng)建桌面圖標(biāo)
點(diǎn)擊右下角的設(shè)置,點(diǎn)擊Create Desktop Entry創(chuàng)建桌面圖標(biāo)
10. Anaconda安裝
參考自從零開始搭建深度學(xué)習(xí)環(huán)境:CUDA+Pyotrch+Anaconda+VScode
描述:Anaconda安裝較簡單,按照上面視頻的步驟就行,下面簡單過一遍
10.1 安裝包下載
進(jìn)入Anaconda官網(wǎng)下載Linux版本社區(qū)版本的.sh文件
Anaconda官網(wǎng)下載鏈接:https://www.anaconda.com/products/distribution#Downloads
首先cd到安裝包目錄下,然后安裝,指令如下:
cd Downloads
bash Anaconda3-2023.03-Linux-x86_64.sh
添加環(huán)境變量
sudo gedit ~/.bashrc
末尾添加(xxx修改為你的用戶名)
export PATH="/home/xxx/anaconda3/bin:$PATH"
source
source ~/.bashrc
10.2 首次激活環(huán)境遇到的問題
但你執(zhí)行conda activate base
會出現(xiàn)如下錯(cuò)誤:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
原因在于當(dāng)前使用的shell沒有配置好conda activate
需要先使用conda init shell
初始化,然后就可以正常使用了,如下所示:
conda init shell
關(guān)閉終端重新打開即可
10.3 conda常用指令
conda info --envs // 查看當(dāng)前環(huán)境
conda create -n myenv python=3.7 // 創(chuàng)建新環(huán)境
conda activate myenv // 激活環(huán)境
conda clean -a // 清除無用包
pip list // 查看已安裝的包(只有當(dāng)前虛擬環(huán)境的包)
conda list // 查看已安裝的包(除了當(dāng)前虛擬環(huán)境下的,還有關(guān)聯(lián)環(huán)境的包)
pip install numpy // 安裝numpy
python // 檢查安裝的numpy
>>> import numpy as np
10.4 conda換源
利用 conda 指令創(chuàng)建虛擬環(huán)境或者安裝第三方庫時(shí)默認(rèn)是訪問外網(wǎng)的源,非常慢,因此我們有必要將其替換為國內(nèi)源來提高速度
copy自:linux中anaconda更換源
1. 查看現(xiàn)有 conda 源,在終端輸入如下命令:
conda info
可以看到 conda 默認(rèn)使用的源,如下圖所示:
2. 檢查 home 目錄下是否存在 .condarc 文件
3. 如果沒有 2 中所述文件,那么執(zhí)行如下命令:
conda config --set show_channel_urls yes
4. 再次檢查 home 目錄下是否有 2 中所述文件,可以發(fā)現(xiàn)此時(shí)已經(jīng)有了該文件
5. 打開 2 中所述文件,添加如下內(nèi)容:
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
6. 保存并退出
7. 再次執(zhí)行步驟 1 查看 conda 源,如下圖所示,可以看到已經(jīng)切換為清華源了
8. 執(zhí)行如下命令來清楚 conda 的緩存:
conda clean -i
9. 至此 conda 國內(nèi)源設(shè)置完成,現(xiàn)在可以愉快的使用 conda 創(chuàng)建虛擬環(huán)境和安裝軟件了??
11. Netron安裝
參考自如何在Linux上快速使用Netron模型可視化工具
描述:經(jīng)常需要查看ONNX網(wǎng)絡(luò)結(jié)構(gòu),安裝非常簡單,使用有點(diǎn)麻煩
去Github下載對應(yīng)的Linux版本,后綴為.AppImage文件
GitHub鏈接:https://github.com/lutzroeder/netron
將下載好的AppImage文件賦予權(quán)限并直接運(yùn)行
chmod a+x Netron-5.5.3.AppImage
./Netron-5.5.3.AppImage
它并不能像Windows一樣直接點(diǎn)開ONNX模型,必須先進(jìn)入對應(yīng)的目錄在終端執(zhí)行./Netron-5.5.3.AppImage
,然后將對應(yīng)的ONNX模型直接拖過來就行。
12. 編譯OpenCV4.6.0
參考自Ubuntu 20.04搭建OpenCV 4.5.0 & C++環(huán)境、Ubuntu 安裝 OpenCV 4.5.5、關(guān)于安裝opencv編譯報(bào)錯(cuò):runtime library * hidden by 等若干問題、cmake編譯出錯(cuò)hidden by files
描述:注意?。?!如果你在編譯opencv之前安裝了annaconda,請先看問題解決(與Anaconda沖突),除了上述沖突問題之外,沒有其他問題,按照上文的操作即可。博主主要參考上文1中的opencv安裝(即前3項(xiàng))以及上文2中的opencv環(huán)境配置和驗(yàn)證。下面簡單過一遍整個(gè)編譯流程
12.1 安裝依賴項(xiàng)
1.安裝g++,cmake,make,wget,unzip,若已安裝,此步跳過
sudo apt install g++
sudo apt install cmake
sudo apt install make
sudo apt install wget unzip
2.安裝opencv依賴的庫
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
3.安裝一些可選的庫
# python3支持(首次安裝了python的庫,但make報(bào)錯(cuò)了,之后刪了這兩個(gè)庫,若不使用python,建議不安裝)
sudo apt install python3-dev python3-numpy
# streamer支持
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
# 可選的依賴
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
12.2 下載OpenCV 4.6.0源文件
可以在官網(wǎng)下載相應(yīng)版本的OpenCV,主要有Source和GitHub兩種方式下載
1.Source:https://opencv.org/releases/
點(diǎn)擊Source進(jìn)行下載,外網(wǎng)訪問慢,可在Windows下通過代理下載后傳到Linux;也可通過我一開始提供的下載鏈接進(jìn)行下載
2.Github下載方式:
# 安裝4.6.0版本
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.6.0.zip
# 安裝最新版本
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
下載完成后,解壓到主目錄,將解壓后的文件重命名為opencv
12.3 Cmake配置和編譯OpenCV
1.在主目錄下打開終端
2.進(jìn)入到下載好的opencv目錄,新建并進(jìn)入目錄build
cd opencv
mkdir build
cd build
3.使用cmake配置opencv
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..
4.用make進(jìn)行編譯
make -j24
5.用make安裝
sudo make install
默認(rèn)安裝路徑如下:
-
/usr/local/bin
- executable files -
/usr/local/bin
- libraries (.so) -
/usr/local/cmake/opencv4
- cmake package -
/usr/local/include/opencv4
- headers -
/usr/local/share/opencv4
- other files (e.g. trained cascades in XML format)
12.4 環(huán)境配置
動態(tài)庫配置
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加
/usr/local/lib
保存后,終端內(nèi)執(zhí)行
sudo ldconfig
更新PKG_CONFIG_PATH
sudo gedit /etc/bash.bashrc
文末添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存后,終端執(zhí)行
source /etc/bash.bashrc
sudo updatedb
若出現(xiàn)
sudo: updatedb: command not found
,執(zhí)行sudo apt install mlocate
后再次操作即可。
12.5 驗(yàn)證
pkg-config
在終端輸入如下指令,會顯示對應(yīng)的opencv版本4.6.0
pkg-config --modversion opencv4
程序驗(yàn)證,代碼如下
test.cpp
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
/**
* 讀寫與顯示
* @return
*/
int main() {
cout << CV_VERSION << endl;
Mat src = cv::imread("test.png", IMREAD_GRAYSCALE);
if (src.empty()) {
cout << "Could not load image\n" << endl;
return -1;
}
namedWindow("gray", WINDOW_AUTOSIZE);
imshow("gray", src);
waitKey(0);
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(test)
find_package(OpenCV REQUIRED)
add_executable(test test.cpp)
target_link_libraries(test ${OpenCV_LIBS})
編譯運(yùn)行
cmake .
make
./test
運(yùn)行后屏幕會顯示目錄下test.png
的灰度圖像
12.6 問題解決(與Anaconda沖突)
特別注意!??!在安裝完成anaconda之后再編譯opencv時(shí),cmake后會出現(xiàn)如下提示信息,導(dǎo)致最終編譯不通過
錯(cuò)誤信息如下:
CMake Warning at cmake/OpenCVUtils.cmake:1547 (add_library):
Cannot generate a safe runtime search path for target opencv_imgcodecs
because files in some directories may conflict with libraries in implicit
directories:
runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/jarvis/anaconda3/lib
runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/jarvis/anaconda3/lib
runtime library [libtiff.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/jarvis/anaconda3/lib
問題分析:安裝anaconda的時(shí)候造成了之前的編譯的庫重新編譯的時(shí)候,報(bào).so文件被隱藏的問題,這是cmake在找?guī)鞎r(shí)的算法問題
問題解決:將anaconda/lib修改為anaconda/lib_bk,在opencv中重新創(chuàng)建build并cmake,等待opencv編譯完成之后,再改回來即可
切記?。?!在編譯完opencv后,將anaconda/lib_bk重新修改為lib
13. CUDA安裝
參考自linux安裝tensorflow,cuda,cudnn安裝,pytorch兼容,RTX30系列GPU兼容cuda
描述:本來想體驗(yàn)下kiwi一鍵安裝CUDA+cuDNN+TensorRT的,但現(xiàn)在還處于內(nèi)測階段,還未公測,等kiwi公測吧,只能先自己來了。CUDA的安裝按照上面視頻的操作來就行,沒有問題,下面簡單過一遍流程。切記!??!CUDA的安裝依賴于顯卡驅(qū)動的安裝,請務(wù)必安裝完顯卡驅(qū)動后再來安裝CUDA
13.1 準(zhǔn)備工作
首先確定我們要安裝的CUDA版本,它是根據(jù)你的驅(qū)動程序版本來安裝的,打開終端輸入如下指令:
cat /proc/driver/nvidia/version
# 或者
nvidia-smi
通過上面兩種方法都可以獲取nvidia-driver的版本,如下圖所示,博主的驅(qū)動程序版本是510.108.03,記住這個(gè)數(shù)字,后續(xù)會用到
我們知道了驅(qū)動版本后就需要確認(rèn)CUDA下載的版本了,查看CUDA版本與驅(qū)動版本對應(yīng)關(guān)系見下面的鏈接(查看表3即可):
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
下面是表3的部分截圖,左邊一列是CUDA版本,后面兩列分別對應(yīng)Linux下和Windows下驅(qū)動版本的要求,GA = General Availability,通用版本,指軟件的通用版本(可以理解為穩(wěn)定版本吧??),后續(xù)我們就安裝GA版本,那么怎么查看自己要下載的CUDA版本呢?看對應(yīng)的驅(qū)動要求就像,比如說在下面的紅色框內(nèi)就是我想要下載的CUDA版本,即CUDA 11.6 GA,驅(qū)動版本要求大于等于510.39.01,而我的驅(qū)動版本之前提到過是510.108.03,顯然是滿足要求的。根據(jù)表中來看,我還可以選擇CUDA 11.5GA、CUDA 11.4等CUDA版本,因?yàn)槲业尿?qū)動版本是滿足要求的。具體選擇那個(gè)根據(jù)個(gè)人情況來就行。
13.2 CUDA下載
確認(rèn)了CUDA下載的版本后我們就可以去NVIDIA官網(wǎng)進(jìn)行下載了,博主需要下載的是CUDA 11.6 GA,
NVIDIA官網(wǎng)CUDA下載鏈接:https://developer.nvidia.com/cuda-toolkit-archive
打開上面的鏈接后,會出現(xiàn)如下的界面,點(diǎn)擊你想要下載的CUDA Toolkit就行,比如博主想要下載CUDA 11.6 GA,點(diǎn)擊下面紅色框中的CUDA Toolkit 11.6.0即可。(為什么點(diǎn)擊11.6.0而不是其它的11.6版本呢?其實(shí)大家可以從上面的版本對應(yīng)圖可知CUDA 11.6 Update 2對應(yīng)CUDA Toolkit 11.6.2;CUDA 11.6 Update1對應(yīng)CUDA Toolkit 11.6.1;CUDA 11.6 GA對應(yīng)CUDA Toolkit 11.6.0)
點(diǎn)進(jìn)去之后選擇目標(biāo)平臺,如下圖所示,博主這里選擇Linux系統(tǒng)、x86_64架構(gòu)、Ubuntu、20.04版本、runfile(local)安裝方式
選擇完成后通過wget后面的地址就可以下載了,建議將網(wǎng)址復(fù)制到瀏覽器中下載,訪問的是外網(wǎng),下載慢,最好是開代理
13.3 CUDA安裝
首先檢查下前面下載的安裝包,看下安裝包名,博主下載的安裝包名為cuda_11.6.0_510.39.01_linux.run,首先看11.6.0是CUDA版本沒有問題,其次看510.39.01是要求的驅(qū)動最小版本也沒有問題,最后是linux即安裝的系統(tǒng)也沒有問題,檢查完畢后下面我們開始安裝工作?????
首先cd到安裝包所在目錄,執(zhí)行如下指令:
sudo sh cuda_11.6.0_510.39.01_linux.run
輸入密碼后等待一段時(shí)間,出現(xiàn)下圖,鍵盤按鍵上下移動,Enter按鍵選擇確認(rèn),我們選擇Continue
選擇完成后跳轉(zhuǎn)到如下界面,在最下面輸入accept
之后跳轉(zhuǎn)到如下界面,選擇你想要安裝的選項(xiàng),
我們只考慮安裝CUDA Toolkit 11.6,其他均取消(空格鍵取消),最后的界面如下,選擇到Install,確認(rèn)(等待終端一段時(shí)間,這個(gè)時(shí)候終端沒有任何顯示,不要關(guān)閉?。。?/strong>)
最后出現(xiàn)如下界面,表示安裝成功
安裝完成之后的路徑:
- /usr/local/cuda-11.6:Toolkit
- /usr/local/cuda-11.6/include:頭文件
- /usr/local/cuda-11.6/lib64:庫文件
13.4 配置環(huán)境變量
CUDA安裝完成之后需要添加一下環(huán)境變量,輸入如下指令打開配置文件:
sudo gedit ~/.bashrc
在最末尾添加如下內(nèi)容(將CUDA版本替換成你自己的)
export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
點(diǎn)擊保存退出,然后刷新一下
source ~/.bashrc
13.5 驗(yàn)證
環(huán)境變量配置完成后,在終端輸入如下指令,有對應(yīng)的輸出代表安裝成功:
nvcc --version
13.6 小結(jié)
CUDA的安裝流程其實(shí)并不復(fù)雜,難點(diǎn)在于兩個(gè)步驟,一是通過你的顯卡驅(qū)動找到對應(yīng)的CUDA版本,二是能否將外網(wǎng)的CUDA安裝包順利下載下來(需要代理)
14. cuDNN安裝
參考自linux安裝tensorflow,cuda,cudnn安裝,pytorch兼容,RTX30系列GPU兼容cuda
描述:本來想體驗(yàn)下kiwi一鍵安裝CUDA+cuDNN+TensorRT的,但現(xiàn)在還處于內(nèi)測階段,還未公測,等kiwi公測吧,只能先自己來了。cuDNN的安裝按照上面視頻的操作來就行,沒有問題,下面簡單過一遍流程。切記?。?!cuDNN的安裝依賴于CUDA的安裝,請務(wù)必安裝完CUDA后再來安裝cuDNN
14.1 cuDNN下載
cuDNN的版本選擇是根據(jù)CUDA版本來的,在前面CUDA的安裝中,我們選擇的是CUDA 11.6.0版本,依據(jù)此我們來安裝cuDNN
NVIDIA官網(wǎng)cuDNN下載鏈接:https://developer.nvidia.com/rdp/cudnn-archive
打開上面的鏈接,會出現(xiàn)如下的界面(可能需要登陸,可以先注冊一個(gè)NVIDIA賬號,也不麻煩)
根據(jù)你的CUDA版本選擇對應(yīng)的cuDNN即可,CUDA 11.x代表CUDA11版本的都支持,博主這里選擇的是Download cuDNN v8.4.0 (April 1st, 2022), for CUDA 11.x,如下所示,點(diǎn)擊之后選擇對應(yīng)的平臺安裝包下載就行,如下面紅色框所示,選擇的是Linux,Ubuntu,x86_64的Tar安裝包
注意?。?!訪問的是外網(wǎng),下載慢,最好是開代理
14.2 cuDNN安裝
首先檢查下前面下載的安裝包,看下安裝包名,博主下載的安裝包名為cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz,首先看linux-x86_64即安裝的系統(tǒng)沒有問題,其次看cuda11.6是依賴的cuda版本也沒有問題,檢查完畢后下面我們開始安裝工作?????
首先cd到安裝包所在目錄,進(jìn)行解壓,執(zhí)行如下指令:
tar -xf cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz
等待解壓完成,解壓完成之后在目錄下有一個(gè)cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive文件夾,這個(gè)文件夾中又包含include和lib兩個(gè)文件夾,分別代表cuDNN頭文件和cuDNN庫文件。
cuDNN非常簡單,就是將這兩個(gè)文件中的所有內(nèi)容復(fù)制到CUDA對應(yīng)的文件夾中,我們來看下接下來的操作
首先輸入如下指令,打開一個(gè)超級窗口(直接復(fù)制權(quán)限不夠):
sudo nautilus
- 在超級窗口中找到之前安裝好的CUDA路徑,在/usr/local/cuda-11.6
- 將cudnn解壓包中include文件全部復(fù)制到/usr/local/cuda-11.6/include中
- 將cudnn解壓包中lib文件全部復(fù)制到/usr/local/cuda-11.6/lib64中
至此,cuDNN的安裝完畢
14.3 小結(jié)
cuDNN的安裝流程其實(shí)并不復(fù)雜,其實(shí)都不能稱之為安裝,就是根據(jù)CUDA版本找到對應(yīng)的cuDNN版本,下載后把其頭文件和庫文件復(fù)制到對應(yīng)CUDA目錄即可。難點(diǎn)在于兩個(gè)步驟,一是通過你的CUDA版本找到對應(yīng)的cuDNN版本,二是能否將外網(wǎng)的cuDNN安裝包順利下載下來(需要代理)
15. TensorRT安裝
參考自Linux安裝TensorRT、Ubuntu20.04安裝TensorRT
描述:本來想體驗(yàn)下kiwi一鍵安裝CUDA+cuDNN+TensorRT的,但現(xiàn)在還處于內(nèi)測階段,還未公測,等kiwi公測吧,只能先自己來了。TensorRT的安裝按照上面視頻的操作來就行,沒有問題,下面簡單過一遍流程。切記?。。ensorRT安裝的版本依賴于CUDA和cuDNN的版本,請先確認(rèn)下CUDA和cuDNN版本
15.1 TensorRT下載
TensorRT的版本是根據(jù)CUDA版本和cuDNN版本來的,在前面的CUDA的安裝中,我們選擇的是CUDA 11.6.0版本,依據(jù)此來安裝TensorRT
NVIDIA官網(wǎng)TensorRT下載鏈接:https://developer.nvidia.com/nvidia-tensorrt-8x-download
打開上面的鏈接,會出現(xiàn)如下的界面(需要登陸,可以先注冊一個(gè)NVIDIA賬號,也不麻煩,可能需要開代理)
登陸完成之后,可以看到下面的界面,點(diǎn)擊**I Agree To the Terms of the …**即下面的紅色框,就可以顯示各種TensorRT版本(其中GA版本=>穩(wěn)定版本 EA版本=>測試版本),
點(diǎn)開之后就是對應(yīng)TensorRT版本的各種形式的安裝包(包名有提示適合的對應(yīng)的CUDA版本),比如博主選擇的是TensorRT 8.4 GA,選擇的是x86_64架構(gòu),系統(tǒng)是Linux操作系統(tǒng),下載形式選擇壓縮包形式(即TAR Package)下載,適用于CUDA 11.6版本,即TensorRT 8.4 GA for Linux x86_64 and CUDA 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6 and 11.7 TAR Package,如下面的紅色框所示。
注意?。?!訪問的是外網(wǎng),下載慢,最好是開代理
15.2 TensorRT安裝
首先檢查下前面下載的安裝包,看下安裝包名,博主下載的安裝包為TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz,首先看Linux.x86_64即安裝的系統(tǒng)沒有問題,其次看cuda-11.6是依賴的cuda版本也沒有問題,最后看cudnn8.4是依賴的cudnn版本也沒有問題,檢查完畢后下面我們開始安裝工作?????
首先cd到安裝包所在目錄,進(jìn)行解壓,執(zhí)行如下指令:
tar zxf TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz
等待解壓完成。解壓完成之后在目錄下有一個(gè)TensorRT-8.4.1.5的文件夾
可以移動該文件夾存放在自己想放的目錄下(也可以重命名),如:
mv TensorRT-8.4.1.5 /opt
至此,TensorRT安裝完成
15.3 配置環(huán)境變量
TensorRT安裝完成之后需要添加一下環(huán)境變量,輸入如下指令打開配置文件:
sudo gedit ~/.bashrc
在最末尾添加如下內(nèi)容(將TensorRT版本替換成你自己的)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/TensorRT-8.4.1.5/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PATH=/opt/TensorRT-8.4.1.5/bin${PATH:+:${PATH}}
點(diǎn)擊保存退出,然后刷新一下
source ~/.bashrc
15.4 驗(yàn)證
測試代碼:/opt/TensorRT-8.4.1.5/samples/sampleMNIST
在安裝的tensorRT目錄下samples文件夾下用sampleMNIST示例測試
首先進(jìn)入該文件夾
cd /opt/TensorRT-8.4.1.5/samples/sampleMNIST
編譯
make
如下圖所示
編譯成功后執(zhí)行如下指令會有對應(yīng)的結(jié)果輸出:
./../../bin/sample_mnist
15.5 小結(jié)
TensorRT的安裝流程其實(shí)并不復(fù)雜,其實(shí)都不能稱之為安裝,就是根據(jù)CUDA版本找到對應(yīng)的TensorRT版本,下載后添加下環(huán)境變量即可。難點(diǎn)在于兩個(gè)步驟,一是通過你的CUDA版本找到對應(yīng)的TensorRT版本,二是是否能將外網(wǎng)的TensorRT安裝包順利下載下來(需要代理)
16. 編譯protobuf
參考自Linux下編譯protobuf、Linux下添加protobuf的環(huán)境變量
描述:由于要經(jīng)常使用到tensorRT_Pro這個(gè)repo,因此需要編譯特定版本的protobuf-3.11.4,編譯流程看我下面的即可
16.1 安裝
首先獲取壓縮包,通過我提供的軟件安裝包下載鏈接,里面就有protobuf-3.11.4
解壓
先cd到安裝包路徑,然后解壓,指令如下:
unzip protobuf-3.11.4.zip
編譯
cd protobuf-3.11.4/cmake
cmake . -Dprotobuf_BUILD_TESTS=OFF
cmake --build .
耐心等待編譯完成(需要一段時(shí)間)
創(chuàng)建安裝目錄
我們先要?jiǎng)?chuàng)建一個(gè)文件用于存放安裝后的protobuf的頭文件和庫文件,我們選擇在/home
目錄下創(chuàng)建一個(gè)protobuf文件,指令如下:
mkdir protobuf
安裝
安裝的位置選擇上面創(chuàng)建的protobuf路徑即可,指令如下:
make install DESTDIR=/home/jarvis/protobuf
注意:編譯完成后的protobuf文件夾下僅僅只有一個(gè)user一個(gè)文件夾,需要將編譯好的protobuf/user/local
下的bin、include、lib文件夾復(fù)制到protobuf
當(dāng)前文件夾下,方便后續(xù)tensorRT_Pro項(xiàng)目的CMakeLists.txt的指定。
16.2 環(huán)境變量的配置
首先打開配置文件,指令如下:
sudo vim /etc/profile
添加如下內(nèi)容保存并退出(注意路徑修改為自己的路徑)
export PATH=$PATH:/home/jarvis/protobuf/bin
export PKG_CONFIG_PATH=/home/jarvis/probobuf/lib/pkgconfig
source生效
source /etc/profile
配置動態(tài)路徑
sudo vim /etc/ld.so.conf
追加如下內(nèi)容(注意路徑修改為自己的路徑)
/home/jarvis/protobuf/lib
驗(yàn)證
protoc --version
輸出對應(yīng)版本信息說明安裝成功
17. Pytorch安裝
參考自Ubuntu20.04深度學(xué)習(xí)環(huán)境:CUDA+Pyotrch+Anaconda+VScode、Pytorch-gpu安裝教程
描述:本次介紹pytorch-gpu版本安裝,在安裝GPU版本的pytorch之前,請先確保你安裝了顯卡驅(qū)動,安裝GPU版本的Pytorch只需要你擁有一張顯卡和對應(yīng)的顯卡驅(qū)動即可。切記!?。ytorch的安裝依賴于顯卡驅(qū)動和Anaconda的安裝,請務(wù)必安裝完顯卡驅(qū)動和Anaconda后再來安裝Pytorch
17.1 介紹
首先我們來明確一個(gè)概念,那就是安裝GPU版本pytorch之前需不需要安裝cuda和cudnn呢?,答案是不需要。以下內(nèi)容copy自一文搞懂PyTorch與CUDA那些事
許多同學(xué)誤以為Pytorch和Tensorflow一樣,運(yùn)行時(shí)需要本機(jī)環(huán)境內(nèi)的CUDA和cuDNN支持,但其實(shí)在一臺沒有安裝CUDA的環(huán)境中按照官網(wǎng)的指南安裝PyTorch也是可以正常在GPU上運(yùn)行的。
安裝GPU版本的PyTorch版本號尾部會出現(xiàn)cuxxx
的字樣,也就是說,PyTorch在安裝時(shí)會自動安裝所需的CUDA運(yùn)行庫,用戶只需要保持PyTorch版本(包含其內(nèi)部的CUDA版本)、Nvidia驅(qū)動版本和GPU型號相匹配。
CUDA版本與驅(qū)動版本對應(yīng)關(guān)系見下面的鏈接(查看表3即可):
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
通常情況下,只要驅(qū)動滿足要求,并且PyTorch官方有預(yù)編譯相應(yīng)的CUDA版本,直接安裝對應(yīng)版本的PyTorch即可。
注意:安培(Ampere)架構(gòu)GPU(GeForce RTX 30系列顯卡,例如RTX3060)只支持CUDA11.0即以上版本,PyTorch官方只有1.7及以上版本才有預(yù)編譯CUDA11,因此建議使用安培架構(gòu)GPU的同學(xué)使用PyTorch1.7及以上版本
17.2 準(zhǔn)備工作
首先確認(rèn)下安裝的Pytorch版本及其指令。先要查看顯卡驅(qū)動版本和其對應(yīng)的CUDA版本,第13節(jié)有詳細(xì)流程,這里不再贅述,博主的顯卡驅(qū)動為510.108.03,CUDA版本最高支持CUDA 11.6,因此我安裝的GPU版本的Pytorch中的CUDA運(yùn)行庫大于11.0且小于等于11.6都可以。
因此去Pytorch官網(wǎng):https://pytorch.org/ 找一個(gè)適合我的版本,我選擇從歷史版本中尋找,如下圖所示:
根據(jù)我的CUDA版本限制,我找到了一個(gè)torch版本為v1.12.0,其pip安裝指令如下:
pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116
pytorch的版本確定了,那對于python版本有沒有要求呢?其實(shí)是有的,比如說你的torch-1.12.0+cu116就不能安裝在python3.6下,具體可查看torch的各種whl文件
torch和對應(yīng)python版本查看鏈接:https://download.pytorch.org/whl/torch/
點(diǎn)擊上面的鏈接,你就可以看到所有的torch安裝包,注意!?。∥覀儾⒉皇且螺d安裝,我們只是來確認(rèn)下torch-1.12.0+cu116對應(yīng)的python版本,點(diǎn)擊鍵盤上的ctrl+f
輸入cu116就可以找到對應(yīng)CUDA11.6版本的torch了,如下圖所示:
其中cu116
就是對應(yīng)CUDA-11.6,cp-38-cp-38
就是對應(yīng)python-3.8版本,因此,從上圖的紅色框中可知,torch-1.12.0+cu116可以安裝的python版本為3.7/3.8/3.9/3.10均可,大家根據(jù)自己的實(shí)際情況來進(jìn)行選擇
17.3 安裝
1.創(chuàng)建虛擬環(huán)境
conda create -n yolov8 python=3.8
其中,yolov8
為虛擬環(huán)境名,可以自己設(shè)置,python版本如果不指定默認(rèn)安裝最新的,而在之前的分析中,我們知道了后續(xù)的torch-1.12.0+cu116的安裝對應(yīng)的python版本為3.7/3.8/3.9/3.10,因此我們指定創(chuàng)建的虛擬環(huán)境的python版本為3.8
2.切換到新建虛擬環(huán)境下
conda activate yolov8
3.查看對應(yīng)的pip源
pip config list
確保pip安裝的源是清華源或阿里云的源,可以查看2.2小節(jié)的pip換源,也可以在每次pip install軟件的時(shí)候加上-i https://pypi.tuna.tsinghua.edu.cn/simple
,不過這樣比較麻煩,博主輸入pip coinfig list
后的輸出如下
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
4.輸入選擇的安裝命令
pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116
安裝包很大,耐心等待安裝完成即可,如下圖所示
特別注意!??!如果安裝失敗,則可以將創(chuàng)建的虛擬環(huán)境完全移除,重新在pytorch官網(wǎng)選擇一個(gè)合適的torch安裝指令,按照上面步驟重新來過,移除指令如下:
conda activate base
conda remove -n pytorch-gpu --all
17.4 驗(yàn)證
1.激活虛擬環(huán)境
conda activate yolov8
2.進(jìn)入python環(huán)境
python
3.導(dǎo)入torch
import torch
torch.cuda.is_available()
輸出為True,說明安裝成功,如下圖所示:
18. 編譯OpenBLAS
描述:最近在學(xué)習(xí) Algo C++ 課程時(shí)需要使用到 OpenBLAS 第三方庫,因此需要編譯該庫方便后續(xù)使用,編譯流程看我下面的即可
OpenBLAS介紹:OpenBLAS 是一個(gè)快速的、開源的、高性能的基礎(chǔ)線性代數(shù)庫,其主要提供矩陣運(yùn)算相關(guān)的函數(shù)和 API。OpenBLAS 支持一些常見的矩陣運(yùn)算,如矩陣相乘、矩陣向量相乘、矩陣的轉(zhuǎn)置、求解線性方程組、特征值分解等等,其內(nèi)部實(shí)現(xiàn)了多線程技術(shù)和 SIMD 指令加速,可以有效地利用多核 CPU 的計(jì)算能力,提高計(jì)算速度。在機(jī)器學(xué)習(xí)和科學(xué)計(jì)算等領(lǐng)域中,OpenBLAS 是一個(gè)廣泛應(yīng)用的高性能數(shù)學(xué)庫之一。而對于 CUDA 上的矩陣運(yùn)算操作,我們也可以調(diào)用對應(yīng)的 cuBLAS 第三方庫進(jìn)行運(yùn)算。(from chatGPT)
18.1 準(zhǔn)備工作
在編譯之前需明確自己的 TARGET 即 CPU 設(shè)備型號,首先打開終端使用如下指令可查看對應(yīng)的CPU
cat /proc/cpuinfo | grep 'model name' | uniq
博主的 CPU 如下圖所示:
接下來查看 CPU 型號所對應(yīng)的 TARGET 名稱,具體查看 OpenBLAS 源碼的 TargetList.txt 文檔,下面是 X86/X86_64
架構(gòu)支持的列表,更多支持可查看源文檔
Force Target Examples:
make TARGET=NEHALEM
make TARGET=LOONGSON3A BINARY=64
make TARGET=ISTANBUL
Supported List:
1.X86/X86_64
a)Intel CPU:
P2
KATMAI
COPPERMINE
NORTHWOOD
PRESCOTT
BANIAS
YONAH
CORE2
PENRYN
DUNNINGTON
NEHALEM
SANDYBRIDGE
HASWELL
SKYLAKEX
ATOM
COOPERLAKE
b)AMD CPU:
ATHLON
OPTERON
OPTERON_SSE3
BARCELONA
SHANGHAI
ISTANBUL
BOBCAT
BULLDOZER
PILEDRIVER
STEAMROLLER
EXCAVATOR
ZEN
c)VIA CPU:
SSE_GENERIC
VIAC3
NANO
具體如何查看自己 CPU 型號對應(yīng)的 Target 呢?
博主也沒有找到合適的方法,只能問問 chatGPT,希望它不要犯病??。博主是 Inter CPU 從其中選擇的是 HASWELL
18.2 編譯
本次編譯選擇從源碼編譯,首先獲取壓縮包,可以通過我提供的軟件安裝包下載鏈接,里面有 OpenBLAS-0.3.17,也可以通過 https://github.com/xianyi/OpenBLAS/tags 選擇不同的版本進(jìn)行編譯
解壓
先 cd 到安裝包路徑,然后解壓,指令如下:
unzip OpenBLAS-0.3.17
創(chuàng)建安裝目錄
我們先要?jiǎng)?chuàng)建一個(gè)文件用于存放安裝后的 OpenBLAS 的頭文件和庫文件,我們選擇在當(dāng)前目錄下創(chuàng)建一個(gè) OpenBLAS 文件夾,指令如下:
mkdir OpenBLAS
創(chuàng)建auto.sh
這次按照杜老師寫的腳本來自動完成整個(gè)編譯過程,在與 OpenBLAS-0.3.17 的同級目錄下創(chuàng)建一個(gè)腳本文件 auto.sh
用于完成自動編譯 OpenBLAS-0.3.17 的過程,其腳本文件中的內(nèi)容如下:
#!/bin/bash
set -e
if [ "$(whoami)" == "root" ];
then
apt install cmake gfortran libblas-dev libblas3 -y
else
echo Please input password to execute \"sudo apt install cmake gfortran libblas-dev libblas3 -y\"
sudo apt install cmake gfortran libblas-dev libblas3 -y
fi
cd OpenBLAS-0.3.17
make TARGET=HASWELL -j
make PREFIX=../OpenBLAS install -j
cd ../
rm -rf OpenBLAS-0.3.17
- 腳本首先檢查當(dāng)前用戶是否為 root 用戶,如果是,則直接安裝必要的依賴庫,否則需要用戶輸入密碼以執(zhí)行 sudo 命令安裝依賴庫。
- 接著進(jìn)入 OpenBLAS 源碼目錄,執(zhí)行 make 命令進(jìn)行編譯,通過參數(shù)
-j
指定使用多線程加速編譯,-j
后面的數(shù)字表示并行編譯線程數(shù),根據(jù)機(jī)器配置合理設(shè)置。注意TARGET修改為你自己所選擇的 - 然后執(zhí)行 make install 命令安裝編譯好的 OpenBLAS 庫到指定路徑。注意PEEFIX為安裝的路徑,如果你想將 OpenBLAS 安裝到別的目錄請修改
- 最后刪除 OpenBLAS 源碼目錄,清理環(huán)境。這個(gè)腳本適用于 Ubuntu 等基于 Debian 的 Linux 系統(tǒng)。
- 切記?。?!當(dāng)需要編譯其它版本的OpenBLAS庫的時(shí)候,需要簡單修改下 auto.sh 腳本文件的內(nèi)容,將 cd 到的文件夾修改為你解壓的文件夾
安裝
將 auto.sh
和 解壓后的 OpenBLAS-0.3.17 文件夾放在同一級目錄下,執(zhí)行如下代碼:
bash auto.sh
編譯安裝過程可能有點(diǎn)慢,請耐心等待
安裝完成后會出現(xiàn)如下提示,且在當(dāng)前目錄下會存在編譯好的 OpenBLAS 的頭文件和庫文件
18.3 驗(yàn)證
利用OpenBLAS的cblas_sgemm寫一個(gè)簡單矩陣相乘的示例
創(chuàng)建一個(gè) workspace 文件夾存放編譯后的程序文件,創(chuàng)建一個(gè) src 文件夾存放源文件,創(chuàng)建一個(gè)makefile 文件用于編譯。整個(gè)項(xiàng)目的整體結(jié)構(gòu)如下:
.
├── auto.sh
├── makefile
├── OpenBLAS
│ ├── bin
│ ├── include
│ └── lib
├── OpenBLAS-0.3.17.zip
├── src
│ └── main.cpp
└── workspace
6 directories, 4 files
src/main.cpp 內(nèi)容如下:
#include <iostream>
#include <cblas.h>
int main()
{
const int N = 3;
const float alpha = 1.0;
const float beta = 0.0;
float A[N][N] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
float B[N][N] = {{1, 1, 1},
{0, 1, 0},
{0, 0, 1}};
float C[N][N] = {0};
cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
N, N, N, alpha, &A[0][0], N, &B[0][0], N, beta, &C[0][0], N);
std::cout << "A x B = " << std::endl;
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < N; ++j)
{
std::cout << C[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
makefile 內(nèi)容如下:
# 1.參數(shù)定義
cc := g++
name := pro
workdir := workspace
srcdir := src
objdir := objs
stdcpp := c++11
# 定義cpp的路徑查找和依賴項(xiàng)mk文件
cpp_srcs := $(shell find $(srcdir) -name "*.cpp")
cpp_objs := $(cpp_srcs:.cpp=.cpp.o)
cpp_objs := $(cpp_objs:$(srcdir)/%=$(objdir)/%)
cpp_mk := $(cpp_objs:.cpp.o=.cpp.mk)
# 定義cu文件的路徑查找和依賴項(xiàng)mk文件
cu_srcs := $(shell find $(srcdir) -name "*.cu")
cu_objs := $(cu_srcs:.cu=.cu.o)
cu_objs := $(cu_objs:$(srcdir)/%=$(objdir)/%)
cu_mk := $(cu_objs:.cu.o=.cu.mk)
# 定義opencv和cuda需要用到的庫文件
link_sys := stdc++ dl openblas
link_librarys := $(link_sys)
# 定義頭文件路徑,請注意斜杠后邊不能有空格
# 只需要寫路徑,不需要寫-I
include_paths := src OpenBLAS/include # 注意!!! 如果OpenBLAS安裝在其他目錄,請修改頭文件路徑
# 定義庫文件路徑,只需要寫路徑,不需要寫-L
library_paths := $(shell pwd)/OpenBLAS/lib # 注意!!! 如果OpenBLAS安裝在其他目錄,請修改庫文件路徑
# 把library path給拼接為一個(gè)字符串,例如a b c => a:b:c
# 然后使得LD_LIBRARY_PATH=a:b:c
empty :=
library_path_export := $(subst $(empty) $(empty),:,$(library_paths))
# 把庫路徑和頭文件路徑拼接起來成一個(gè),批量自動加-I、-L、-l
run_paths := $(foreach item,$(library_paths),-Wl,-rpath=$(item))
include_paths := $(foreach item,$(include_paths),-I$(item))
library_paths := $(foreach item,$(library_paths),-L$(item))
link_librarys := $(foreach item,$(link_librarys),-l$(item))
# 如果是其他顯卡,請修改-gencode=arch=compute_75,code=sm_75為對應(yīng)顯卡的能力
# 顯卡對應(yīng)的號碼參考這里:https://developer.nvidia.com/zh-cn/cuda-gpus#compute
# 如果是 jetson nano,提示找不到-m64指令,請刪掉 -m64選項(xiàng)。不影響結(jié)果
cpp_compile_flags := -std=$(stdcpp) -w -g -O0 -m64 -fPIC -fopenmp -pthread
link_flags := -pthread -fopenmp -Wl,-rpath='$$ORIGIN'
cpp_compile_flags += $(include_paths)
link_flags += $(library_paths) $(link_librarys) $(run_paths)
# 如果頭文件修改了,這里的指令可以讓他自動編譯依賴的cpp或者cu文件
ifneq ($(MAKECMDGOALS), clean)
-include $(cpp_mk) $(cu_mk)
endif
$(name) : $(workdir)/$(name)
all : $(name)
run : $(name)
@cd $(workdir) && ./$(name) $(run_args)
$(workdir)/$(name) : $(cpp_objs) $(cu_objs)
@echo Link $@
@mkdir -p $(dir $@)
@$(cc) $^ -o $@ $(link_flags)
$(objdir)/%.cpp.o : $(srcdir)/%.cpp
@echo Compile CXX $<
@mkdir -p $(dir $@)
@$(cc) -c $< -o $@ $(cpp_compile_flags)
# 編譯cpp依賴項(xiàng),生成mk文件
$(objdir)/%.cpp.mk : $(srcdir)/%.cpp
@echo Compile depends C++ $<
@mkdir -p $(dir $@)
@$(cc) -M $< -MF $@ -MT $(@:.cpp.mk=.cpp.o) $(cpp_compile_flags)
# 定義清理指令
clean :
@rm -rf $(objdir) $(workdir)/$(name)
@rm -rf $(workdir)/mnist
# 防止符號被當(dāng)做文件
.PHONY : clean run $(name)
# 導(dǎo)出依賴庫路徑,使得能夠運(yùn)行起來
export LD_LIBRARY_PATH:=$(library_path_export)
在終端執(zhí)行 make run
即可看到兩個(gè)矩陣相乘的結(jié)果,如下圖所示:
19. 編譯FFmpeg
參考自FFMpeg學(xué)習(xí)筆記–Ubuntu20.04編譯FFmpeg、FFplay和FFprobe
描述:最近在學(xué)習(xí)視頻流媒體的編解碼,在學(xué)習(xí) hard_decode_trt 項(xiàng)目時(shí)需要使用到 FFMpeg 第三方庫,因此需要編譯該庫方便后續(xù)使用。編譯流程按照上文的操作即可,值得注意的是 hard_decode_trt 使用的 FFmpeg-4.2 版本,博主編譯過 FFmpeg-5.1 版本,發(fā)現(xiàn)在 FFmpeg 中有一些 API 發(fā)生了改變,導(dǎo)致 hard_decode_trt 項(xiàng)目無法運(yùn)行起來,所以為了讓問題更加簡單化,博主也是編譯的 FFmpeg-4.2,其它版本的編譯也可以按照上文的流程走,沒有問題。
FFmpeg介紹:FFmpeg 是一款跨平臺的、開源的音視頻處理軟件。它可以對音視頻進(jìn)行編解碼、轉(zhuǎn)碼、剪輯、合并等處理,支持多種格式的音視頻文件。在視頻流媒體編解碼中,F(xiàn)Fmpeg 通常被用來進(jìn)行解封裝、編碼、解碼、轉(zhuǎn)換等操作。它通過將原始的音視頻數(shù)據(jù)流解封裝成一幀一幀的數(shù)據(jù),然后將這些數(shù)據(jù)傳輸給硬件編碼器(例如 NVIDIA 的 NVDEC)。硬件編碼器將編碼后的數(shù)據(jù)傳輸回 FFmpeg,再由 FFmpeg 將編碼后的數(shù)據(jù)封裝稱所需要的視頻格式,例如 MP4、AVI 等。FFmpeg 提供了必要的解封裝和編解碼功能,使得視頻編解碼更加高效、簡單和方便。
19.1 下載FFmpeg
下載 4.2 版本的 ffmpeg,指令如下:
wget http://www.ffmpeg.org/releases/ffmpeg-4.2.tar.gz
可以將鏈接復(fù)制到瀏覽器中下載,外網(wǎng)訪問慢,建議開代理。也可以點(diǎn)擊 here[pwd:yolo] 下載博主準(zhǔn)備好的安裝包
解壓下載好的壓縮包
tar -zxvf ffmpeg-4.2.tar.gz
19.2 編譯FFmpeg
進(jìn)入解壓后的文件夾
cd ffmpeg-4.2
安裝依賴
# 安裝ffplay需要的依賴
sudo apt-get install libx11-dev xorg-dev libsdl2-2.0 libsdl2-dev
sudo apt install clang libfdk-aac-dev libspeex-dev libx264-dev libx265-dev libnuma-dev
sudo apt install yasm pkg-config libopencore-amrnb-dev libopencore-amrwb-dev
編譯FFmpeg
# 查看幫助文檔確定需要安裝的相關(guān)參數(shù)
./configure --help
配置相關(guān)參數(shù)
./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-ffplay --enable-ffprobe --enable-libx264 --enable-libx265 --enable-debug
注意這里博主與參考的博文設(shè)置不太一樣,博主新增了 --disable-static
--enable-shared
參數(shù),讓其編譯成動態(tài)庫且不需要靜態(tài)庫,方便后續(xù) hard_decode_trt 項(xiàng)目的指定。
make編譯
make -j24
注:make 這步需要的時(shí)間一般比較長
安裝
sudo make install
耐心等待安裝完成即可。
安裝完成后的 FFmpeg 頭文件在 /usr/local/include 目錄下,庫文件在 /usr/local/lib 目錄下,可執(zhí)行文件在 /usr/local/bin 目錄下
19.3 設(shè)置環(huán)境變量
博主并未設(shè)置,若有需求見參考博文
19.4 驗(yàn)證
查看 FFmpeg 的版本,由于博主未設(shè)置環(huán)境變量,所以先要 cd 到 /usr/local/bin 目錄下
cd /usr/local/bin
ffmpeg -version
查看 FFmpeg 幫助文檔
ffmpeg -h
ffmpeg -h long
ffmpeg -h full
19.5 卸載FFmpeg
卸載非常簡單,指令如下:
# 首先進(jìn)入 ffmpeg 源碼編譯的路徑
cd ffmpeg-4.2
sudo make uninstall
執(zhí)行完成后可以發(fā)現(xiàn)在 /usr/local/include 中 FFmpeg 的頭文件沒有了,在 /usr/local/lib 中 FFmpeg 的庫文件沒有了,在 /usr/local/bin 中 FFmpeg 的可執(zhí)行文件沒有了。
這個(gè)需求非常有必要,當(dāng)你發(fā)現(xiàn)編譯后的 FFmpeg 缺少某些庫時(shí),你可以通過 sudo make uninstall
卸載,然后通過 ./configure
重新配置參數(shù)編譯。當(dāng)你需要替換其它版本的 FFmepg 時(shí),也可以先通過 sudo make uninstall
卸載,然后下載其它版本的 FFmpeg,通過上述操作重新編譯。
20. NVIDIA VIDEO_CODEC_SDK
在學(xué)習(xí)視頻流硬解碼過程中需要用到視頻解碼的 GPU 硬件加速器引擎,而 NVIDIA 提供了一個(gè)用于視頻編解碼的 SDK 即 NVIDIA VIDEO_CODEC_SDK,它是一個(gè) API 套件,包含高性能工具、樣本和文檔,適用于 Windows 和 Linux 的硬件加速型視頻編碼和解碼。此 SDK 包含兩個(gè)硬件加速接口:
- 用于視頻編碼加速的 NVENCODE API
- 用于視頻解碼加速的 NVDECODE API(舊稱 NVCUVID API)
NVENC:硬件加速的視頻編碼
從 Kepler 這一代開始,NVIDIA GPU 包含基于硬件的編碼器(簡稱為 NVENC),可提供基于硬件的全加速視頻編碼,且獨(dú)立于圖形性能。由于計(jì)算復(fù)雜的編碼工作流完全卸載至 NVENC,圖形引擎和 CPU 可以有更多的事件執(zhí)行其它操作。
NVDEC:硬件加速的視頻解碼
NVIDIA GPU 包含基于硬件的解碼器(簡稱為 NVDEC),可為幾種熱門的編解碼器提供基于硬件的全加速視頻解碼。由于解碼工作流完全卸載至 NVDEC,圖形引擎和 CPU 可以有更多的事件執(zhí)行其它操作。NVDEC 比實(shí)時(shí)解碼速度更快,非常適合于轉(zhuǎn)碼應(yīng)用以及視頻播放應(yīng)用。
Copy 自 NVIDIA 視頻編解碼器 SDK
由于是 SDK 不需要編譯,直接下載解壓拿來用就行,其下載地址為:
- https://developer.nvidia.com/nvidia-video-codec-sdk/download
現(xiàn)在最新的 SDK 為 12.0 版本,其系統(tǒng)要求如下圖,Linux 下顯卡驅(qū)動要求為 520.56.06 或者更新,且只支持 NVIDIA Quadro,Tesla,GRID 以及 GeForce 系列產(chǎn)品
其歷史版本可通過 https://developer.nvidia.com/video-codec-sdk-archive 下載,也可以點(diǎn)擊 here[pwd:yolo] 下載博主準(zhǔn)備好的安裝包(提供 10.0、11.0、11.1、12.0 四個(gè)版本的 SDK,根據(jù)自己的需求下載即可) ,每個(gè)版本都有對應(yīng)的顯卡驅(qū)動要求,例如 11.0 要求 Linux 下顯卡驅(qū)動大于等于 455.27。下載完成后解壓即可,后續(xù)可通過 makefile 文件進(jìn)行其頭文件和庫文件的指定。
21. Eigen
描述:最近在學(xué)習(xí) CPD 點(diǎn)集配準(zhǔn)方法,在學(xué)習(xí) https://github.com/gadomski/cpd 項(xiàng)目時(shí)需要使用到 Eigen 庫用于進(jìn)行數(shù)學(xué)運(yùn)算。值得注意的是,Eigen 庫本身不需要編譯,它是一個(gè)頭文件,這意味著你無需單獨(dú)編譯它,只要將相應(yīng)的頭文件包含在項(xiàng)目中,就可以直接使用它的功能了。
Eigen介紹:Eigen 是一個(gè)用于 C++ 的開源線性代數(shù)庫,它提供了豐富的線性代數(shù)運(yùn)算功能,包括矩陣運(yùn)算、向量運(yùn)算、線性方程求解、特征值和特征向量計(jì)算等。Eigen 庫是一個(gè)純頭文件庫,因此使用起來非常方便,無需編譯額外的庫文件,只需將相應(yīng)的頭文件包含在你的項(xiàng)目中即可。
以下是 Eigen 庫的一些特點(diǎn)和優(yōu)勢:
1. 簡潔易用:Eigen 的 API 設(shè)計(jì)簡單直觀,易于學(xué)習(xí)和使用,提供了類似于 MATLAB 的矩陣和向量表示方式,使得代碼編寫更加清晰和易讀。
2. 高性能:Eigen 庫在設(shè)計(jì)上注重運(yùn)行時(shí)性能,采用了各種優(yōu)化技術(shù),同時(shí)支持向量化指令,使得它在進(jìn)行大規(guī)模線性代數(shù)計(jì)算時(shí)表現(xiàn)出色。
3. 功能豐富:Eigen 提供了大量的線性代數(shù)運(yùn)算函數(shù),包括基本的矩陣和向量操作,以及線性方程組求解、特征值和特征向量計(jì)算、矩陣分解等高級功能。
4. 跨平臺:Eigen 是一個(gè)跨平臺的庫,可以在各種操作系統(tǒng)和編譯器上運(yùn)行,無需擔(dān)心兼容性問題。
5. 自由開源:Eigen 遵循 MPL2.0 協(xié)議,可以免費(fèi)用于商業(yè)和非商業(yè)項(xiàng)目。
由于 Eigen 庫的優(yōu)雅設(shè)計(jì)和高性能,它被廣泛應(yīng)用于各種領(lǐng)域,如科學(xué)計(jì)算、機(jī)器學(xué)習(xí)、計(jì)算機(jī)圖形學(xué)等
21.1 下載Eigen
你需要從 Eigen 官方網(wǎng)站 https://eigen.tuxfamily.org/index.php?title=Main_Page 中下載對應(yīng)的源文件壓縮包,如下圖所示:
在這里博主選擇了一個(gè)相對穩(wěn)定的版本 Eigen-3.4.0
21.2 使用Eigen
我們把下載好的 Eigen 進(jìn)行解壓后就可以使用了,我們來寫一個(gè)簡單的示例代碼看看效果
main.cpp 內(nèi)容如下:
#include <iostream>
#include <Eigen/Dense>
int main() {
Eigen::MatrixXd matrix(2, 2);
matrix << 1, 2,
3, 4;
Eigen::VectorXd vector(2);
vector << 5, 6;
Eigen::VectorXd result = matrix * vector;
std::cout << "Matrix * Vector = \n" << result << std::endl;
return 0;
}
CMakeLists.txt 文件如下:
cmake_minimum_required(VERSION 3.5)
project(EigenExample)
# 設(shè)置編譯器
set(CMAKE_CXX_STANDARD 11)
# 指定Eigen3的頭文件路徑
include_directories(/path/to/custom_eigen3)
# 設(shè)置可執(zhí)行文件
add_executable(eigen_example main.cpp)
你需要修改 Eigen 庫的路徑為你使用的路徑,然后將上述兩個(gè)文件(main.cpp和CMakeLists.txt)放在同一個(gè)目錄下,執(zhí)行以下命令來編譯你的程序:
mkdir build
cd build
cmake ..
make
編譯運(yùn)行效果如下圖所示:文章來源:http://www.zghlxwxcb.cn/news/detail-755036.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-755036.html
到了這里,關(guān)于Ubuntu20.04軟件安裝大全的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!