本次安装的电脑环境及配置:Win7,64位,专业版。
Linux系统下载的是 Ubuntu 18.04.2 版本。
其官网下载地址: https://ubuntu.com/download/desktop
系统通过虚拟机装在电脑上,用的是 VMware Workstation Pro 12 软件进行配置。
VMware Workstation Pro 12软件程序我就不放链接了,因为我是从同学那边拷贝的,大家没有的自行上网搜索,网上有很多。
因为本人萌新一只,在安装和配置过程中有很多不熟悉的地方,大多数内容皆为本人参考其他大神的总结所尝试与安装,如有错误或者有误导嫌疑的地方还请各位批评指正。
因为美观与方便观看,除了软件的下载连接为网址全部显示的超链接之外,其他所有的超链接皆用“参考网址”四个字作为超链接。
我希望作为一个个人记录用的博客文章,不应该仅仅记录成功的部分,失败的部分也一并记录下来。也作为以后的参考依据与分析。如果你觉得看这些是在浪费时间,你可以直接从第二次安装虚拟机开始。
下面的所有安装与配置顺序基本是我尝试进行安装时间顺序,只是将这些原原本本的记录下来。可能对你来说并非最好的安装与配置顺序。
.
关于 Ubuntu 18 的 root 密码,在安装新系统后初次进入 root 时,可以输入命令 sudo passwd 进行修改配置(需用户密码)。参考网址
在虚拟机安装完成后,便可以开始安装 QT,QT 安装的是 QT5.9.1 版本。与电脑安装版本一致,便没有用最新的版本。
其官方下载地址: http://download.qt.io/archive/qt/
因为对Linux还不太熟悉,发现下载下来的文件后缀名为RUN。通过虚拟机的共享文件夹配置,Ubuntu自然是能够找到电脑目录下的QT安装程序。
进入文件夹,然后输入
$ ./qt-opensource-linux-x64-5.9.1.run
即可打开安装程序。(不同的qt版本文件名有所不同,格式为./文件名.run)
我这里用的是默认安装
安装完成之后发现新建了一个工程,结果除了pro文件,其他文件在左边的文件目录下皆无法找到,最后发现是QT没有找到GCC与G++编译器。
其可以在QT上方菜单栏 Tools->Options->Build&Run 中可以查看。
其中 Kits 为构建套件, Compilers 为编译器。
后找到一篇博文通过指令:
$ sudo apt-get install build-essential
进行安装。参考网址
后来QT新建工程能够正常有目录并且找到编译器了,但还是有一些报错,后尝试了下面的指令问题依旧。
$ ./usr/bin/ruby# sudo apt-get install gcc-multilib g++-multilib
后来自行摸索,感觉构建套件不对劲,索性都改成了64位的编译器,可能是64位的QT对32位的编译器不兼容导致,之前一直都是感叹号,在改过之后上面的图标才显示正常。
运行编译,依然是出现了错误,错误有两个。
后通过下面指令自动安装。参考网址
$ sudo apt-get install libgl1-mesa-dev
继续编译,反而爆出了一大堆错误。
经过一番折腾后,决定重装QT。
搜索一下,找到了卸载QT的方法。
通过目录/home/danpe/Qt5.9.1下运行MaintenanceTool文件即可。参考网址
即:
$ ./MaintenanceTool
但后来却找不到共享文件夹的文件内容了,检查了VMware Workstation的设置无问题。
后来我改了系统的语言,改成了中文。参考网址
之后参考了网上两三个方法,想弄共享文件夹都行不通,最后只能直接删了虚拟机重新安装一遍试试。
重装之后,顺便将系统语言改为了中文。
再经过上网搜索之后,终于把虚拟机的共享文件搞定了。原来在通过VMware Workstation软件进行共享文件夹操作时,还要对虚拟机内部也要装上VMware Tools。否则只有在刚创建虚拟机的时候才能看到所设置的共享文件夹。参考网址1、参考网址2
但在后面系统重启了之后,发现共享文件夹又挂掉了。
于是我在网上搜索到了这篇,但操作完成之后只能以root权限打开进入看到共享文件夹。参考网址
在系统重启后发现又没有用了???
?????
服了。。。
后通过重新安装VMware Workstation软件临时解决(重启后就又没用了,不知道根本性的解决办法是什么)
具体方法为进入VMware安装包下bin文件后执行vmware-config-tools.pl文件。
指令为:
$ sudo ./vmware-config-tools.pl
然后按Y的按Y,剩下的直接等待就可以完成安装。参考网址
通过共享文件夹传给Ubuntu系统早就下载好的QT安装包和OpenCV源码库以及项目上同事写的一些项目代码作为后面工作学习用。
后面就可以安装gcc和g++,为QT的安装作先前准备,输入指令:
$ sudo apt-get install build-essential
或者
$ sudo apt-get install gcc g++ make -y
两种方法皆可。参考网址1、参考网址2
后开始安装QT。
运行RUN文件按步骤点即可。
后来新建一个新项目编译报了两个错误:
找不到 -lGL
ld returned 1 exit status
后来通过搜索,找到解决方案:终端先到/usr/lib/目录下,然后输入指令:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1.0.0 /usr/lib/libGL.so
再切回去编译,终于解决问题。参考网址
(其中x86_64-linux-gnu文件夹可能因系统以及安装目录的不同,有所区别,关键是找到libGL.so.1.0.0文件)
至此,QT环境正式搭建完成!
接下来安装OpenCV。
我下面所有的安装过程皆是参考的是这个帖子,所以下面内容所有涉及到这个帖子的我不再复述解释:参考网址
具体过程不再详叙,因为里面说的很全也很多,我就不一一照搬了。
但是在安装的时候还是出现了两个意外错误,错误如下:
E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
在网上搜到两个常规解决手段,一个是通过指令:
$ ps -e|grep apt-get
找到正在运行的apt-get程序,比如显示:
5873 ? 00:00:01 apt-get
然后通过指令:
$ sudo kill 5873
杀死该进程即可。
第二种是通过两个指令强制解锁:
$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock
参考网址
但这两个方法试过都没有用,后来找到了一个解决方法终于解决。
就是通过指令:
$ ps aux
来列出进程,然后我找到了两个_apt的进程,最后通过上面说过的 sudo kill 指令杀死了那两个进程。问题终于解决。参考网址
后来都正常安装,在cmake的时候又遇到了一个问题,问题显示:CMake Error: The source directory does not exist,后来发现是指令的问题。
正确指令:
$ cmake -DCMAKE_BUILD_TYPE=Release ..
注意:-D后面不要留空格,在最后一个单词后面留一个空格,然后两个点
或者:$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 …
其中,在进行到第九项时,即
在配置OpenCV的编译环境时,指令
$ sudo vim /etc/ld.so.conf.d/opencv.conf
会显示:
sudo: vim:找不到命令
则输入命令:
$ sudo apt-get install vim-gtk
即可。
继续安装配置
注意
$ sudo vim /etc/ld.so.conf.d/opencv.conf
这个语句中文件夹 ld.so.conf.d 开头字母是字母里面的小写L,不是数字1,否则会出现能够打开文件(???)但是一直无法保存的错误。
然后进入测试环节,因为我是用的是默认安装路径,所以把需要添加在第十四行的前面的代码改为:
set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
后需要将电脑上的摄像头以USB形式添加到虚拟机中。参考网址
经过测试,能够搜索识别到摄像头,看到摄像头的灯已经亮起,但是显示内容为黑屏,目前不是很清楚具体原因,但 OpenCV4.1.0 是已经完全装好了的。后面编译代码也应该都没有问题了。
最后发现是兼容性问题,在VMware上面菜单栏的虚拟机的设置里面。将USB控制器里面的USB兼容性由USB2.0改成USB3.0,然后再重新设置挂载摄像头,就可以解决能检测到摄像头但是黑屏的问题了。
后来简单又编译了另一个空的工程,引用了几个 OpenCV4 的头文件后开始编译,出现错误:
找不到 -lpulse-mainloop-glib
找不到 -lpulse
后搜索一下找到相应的解决方案,大体就是找到libpulse.so与libpulse-mainloop-glib.so两个文件并复制到/usr/lib/路径下即可。最后也完美解决问题,编译通过。具体可以看参考网址。
除了这个问题之外在打开QT官方Camera例程工程编译又遇到一个错误。
error: GL/gl.h: 没有那个文件或目录
解决方法是输入语句:
$ sudo apt-get install libgl1-mesa-dev
即可正常编译,也正常识别摄像头与打开摄像头画面。参考网址
至此在Linux(Ubuntu 18.4.2)下安装QT与OpenCV就完全配置成功了。
下面就可以开始干活了!
.
(完)