VMware下ubuntu虛擬機的"Qt5-Opencv3.4.9"裝機

只要裝機不停下來 道路就會不斷延伸 我們的努力也會 全 部 木 大

零零碎碎用了幾天時間終於算把這幾個玩意兒下載並安裝完成了,長舒一口氣。寫一下裝機的時候遇到的各種各樣的事情,若有所裨益再好不過。


重申:
這是我總結了裝機時出現的各種錯誤,採取了避坑措施後寫出的。如果遇到了報錯,則是我沒有遇到的,請各位各顯神通。

一、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/

四、

Hooray!

發佈了11 篇原創文章 · 獲贊 5 · 訪問量 6263
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章