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 · 访问量 3344

猜你喜欢

转载自blog.csdn.net/qq_24855707/article/details/104214714