只要裝機不停下來 道路就會不斷延伸 我們的努力也會 全 部 木 大
零零碎碎用了幾天時間終於算把這幾個玩意兒下載並安裝完成了,長舒一口氣。寫一下裝機的時候遇到的各種各樣的事情,若有所裨益再好不過。
重申:
這是我總結了裝機時出現的各種錯誤,採取了避坑措施後寫出的。如果遇到了報錯,則是我沒有遇到的,請各位各顯神通。
一、Qt5的安裝
指路官網網址: https://download.qt.io/official_releases/qt/
根據自己需要下載對應版本,我這裏選用的是
qt-opensource-linux-x64-5.12.3.run
下載好後在終端執行下述代碼
sudo apt-get update
cd DownLoads #“DownLoads”是下載了qt的文件夾
chmod +x ./qt-opensource-linux-x64-5.9.1.run
sudo ./qt-opensource-linux-x64-5.9.1.run
可執行化後雙擊圖標,在圖形化界面下點點點就完事兒了,在安裝時有一個地方需要全選 廢話
安裝結束後還需要修改配置。在終端輸入下述代碼:
(也不一定是vim gedit也行,只要是文本編輯器就好了)
sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
對打開的文檔分別寫入Qt5的bin目錄以及Qt5的目錄,例如:
/home/XXX/NUEDC/qt5/5.12.3/gcc_64/bin
/home/XXX/NUEDC/qt5
爲避免誤解 聲明XXX是用戶的名稱
保存退出文本編輯器,回到終端,輸入下述命令:
sudo apt-get install libgl1-mesa-dev
Qt5安裝完成
二、安裝及編譯OpenCV3.2.0(包括opencv_contrib)
1.安裝opencv的依賴庫(?
自認爲這裏列出的依賴有冗餘,我也沒搞懂到底哪些有用,從許多博客上查到一些命令合在一起最終總算可以開始之後一步了
在終端輸入下述命令:
sudo apt-get install libgl1-mesa-dev
sudo apt-get -y install build-essential cmake pkg-config
sudo apt-get -y install libjpeg62-dev
sudo apt-get -y install libtiff4-dev libjasper-dev
sudo apt-get -y install libtiff4-dev
sudo apt-get -y install libtiff5-dev
sudo apt-get -y install libtiff5-dev libjasper-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install git libgtk2.0-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip --fix-missing
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libavresample
然後安裝CMake 在終端執行下述命令:
sudo apt-get install cmake
2.下載Opencv以及Opencv-contrib
不得不說GFW在這個方面太擋事,網絡不行的地區直接下載基本不可能,這裏大家自己各顯神通吧。
兩個文件的版本號一定要相同。(我這裏選擇的是3.4.9)
下載下來後是兩個文件夾,把contrib的那個放入另一個裏面 (以防萬一說一下 意思就是/opencv3.4.9/opencv_contrib-3.4.9這樣的相對關係)
3.編譯(報錯重頭戲)
在終端執行下述命令:
sudo apt install cmake-qt-gui
sudo apt-get install ccache
在opencv主文件夾下打開終端(右鍵+e,cd到這裏一個意思),執行下述命令:
mkdir release #我這裏命名是release,有的博客是用的build,應該都沒問題
cd release
cmake-gui
在彈出來的圖形化面板上進行操作:
1)
“Where is the source code”
填寫opencv主文件夾路徑,填到opencv位置,比如"home/XXX/opencv3.4.9"
2)
“Where to build the binaries”
填寫contrib文件夾路徑,比如"home/XXX/opencv3.4.9/opencv_contrib-3.4.9"
3)
搜索free 在彈出的欄目裏打鉤
4)
搜索contrib 可能沒有也可能有欄目跳出
如果沒有,點擊搜索欄旁邊的Add Entry
Type改爲Path
Name填寫"OPENCV_EXTRA_MODULES_PATH"
Value填寫contrib文件夾中的"modules"文件夾的路徑,例如"home/XXX/opencv3.4.9/opencv_contrib-3.4.9/modules"
5)
搜索qt
把WITH_QT的勾打上
把Qt5_DIR後面的值改爲cmake文件夾下Qt5文件夾的所在路徑,例如"home/xxx/qt5/5.12.3/gcc_64/lib/cmake/Qt5"
6)
點擊左下角的Configure,再Generate.
如果一切順利這裏應該就是在下方的小框內只有黑字,沒有紅字。但是這裏大概率會遇到ippicv開頭的文件下載失敗的問題。
嘗試各種方法後最終一種辦法採取了成效,這裏指路我最終採用的辦法 csdn博客
從編譯一步開始到這裏的步驟,是我總結了裝機時出現的各種錯誤,採取了避坑措施後寫出的。如果到這一步時configure還出現紅字的報錯(比如剛纔zdy纔來問),則是我沒有遇到的,請各位各顯神通。
加油 奧利給!!!
7)
在cd到release文件夾的終端裏輸入下述命令:
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 WITH_QT=On -D WITH_OPENGL=ON OPENCV_EXTRA_MODULES_PATH=/home/XXX/opencv3.4.9/opencv_contrib-3.4.9/modules/ ..
其中,CMAKE_INSTALL_PREFIX是庫文件安裝目錄,建議就使用這個,WITH_QT=On必須選,OPENCV_EXTRA_MODULES_PATH=後面是你的contrib存放的絕對路徑(相對路徑不知道可不可以),後面兩個.必須加。
8)
在cd到release文件夾的終端裏輸入下述命令:
sudo make -j8
最末數字代表機子實際有的線程數目,比如八線程CPU就寫j8,此處的x太小的話編譯太慢,太多的話會死機,請謹慎。
在這裏可能會遇到奇怪的錯誤,我遇到了如下報錯:
c++: internal compiler error: Killed (program cc1plus)
查詢後發現是內存不足所致。有的說用虛擬內存解決,太高大上了。不過既然這是虛擬機,我是採用關機在vmware調分配內存解決的(3.8GB的樣子)
三、掃尾、測試
參照這篇博客的第9到12步 csdn博客
在執行第12步前先在終端輸入下述命令:
export LD_LIBRARY_PATH=/home/XXX/qt5/5.12.3/gcc_64/lib/