引言
这篇文章主要记录一下完成WMJ战队的第一次任务的过程,实在是跌宕起伏苦不堪言。
由于本弱狗之前学过一点linux的内容,本来以为可以不用装系统了。但因为之前不太懂,下的东西太多,也调了一些莫名其妙的东西,导致我都ubuntu有两个用户三个桌面环境,而且经常性死机,只有重启才能变好。又因为我之前下的是16.04版本,据说ROS要18.04版本,所以我在被装不上OpenCV和电脑死机外加经常性缺失文件的折磨后,在昨晚决定重装系统。重装系统后感觉一切都变好了,顺顺利利的用了一上午的时间弄好。所以,重装系统可以解决100%的问题这句话是真理!!!
Ubuntu 18.04 安装
这里说一下我安装系统的过程,因为之前安装过,所以这次安装也轻车熟路,从下载到装好也就一个小时左右,基本没有什么问题,这里放一下我参考的教程:
这个教程写的很清楚,基本照着一步一步来就好了,我也是在这里才知道win10制作启动盘不用虚拟光驱,直接把ISO上的文件复制到U盘上就行了,这样要方便很多。
镜像下载
Ubuntu18.04的镜像我是在蒲公英上下载的,也就几分钟就下好了,这些都花了很少的时间,主要的时间花费是因为我反复确认了好多遍才敢继续操作(因为去年因为误操作把win10系统弄没了),所以才花了一个小时,不然可能半个小时就够了。
启动盘制作
就像教程里一样,准备一个8G及以上的U盘,直接双击打开下载好的ISO文件,将里面所有文件复制到U盘上就可以了。还要记得把U盘里的东西备份一下,因为要格式化。
分配空间
这一步很重要,我上次就是死在这里,装系统之前一定要分配空间。在计算机->管理->磁盘管理
中进行操作,具体为右击你要分区的磁盘,旋测压缩卷,填入你要压缩的空间大小。这里我分了100G,根据个人需求合理分配就可以。
BIOS设置
进入BIOS
这个虽然对许多人没必要说,但我当时是真的不会,还因为这个自闭了好久,所以我还是决定说一下。BIOS在百度百科上的解释是:BIOS是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。总而言之就谁很重要,也是你装系统必须要进的一个界面,要在这里设置BOOT。
进入BIOS的方法每个电脑都不一样,我都电脑是联想拯救者,开机前疯狂按F2就可以了。别的电脑不太清楚,建议自行百度一下。
修改启动项
进入BIOS后,点击方向箭头->
,移动到Security,再按↓移动到Secure Boot上,点击回车键,选择Disable。
如图(这里直接贴教程里的图,因为我的电脑跟这个一样):
安装Ubuntu到电脑
终于到了这一步了,安装过程中千万不要拔U盘。
退出BIOS后,你的电脑应该会关机和重启,跟进入BIOS一样,在开机前疯狂摁F12,在出现的界面中选择你的U盘。这里要自行判断一下,最好在进入之前先在BIOS里看看有哪几个启动项,我就是因为不知道哪个是U盘重启了三遍(第一遍不知道,第二遍拔掉U盘看之前有啥,第三遍选择U盘)。
等待一会后就进入了Ubuntu,可以先试一试,如果觉得正常的话,就点击左上角的Install Ubuntu 18.04LTS。
后面的东西没啥好说的了,就跟着一步一步来就可以了,建议看上面的教程,按着他说的选,分区方面,建议先看一下他后面的分区建议,分
/
和/home
分区。这样Ubuntu就安装好了,可以说是十分顺利
OpenCV安装
安装OpenCV是我最吃力的部分,可以说是这两天都花在这上面了,因为一直有各种各样的BUG。问题太多,以至于我一天搜了几百条问题,最后还是调好一个又出现一个,cmake编译一直过不了。最后直接重装了系统。
这里贴一下我的一部分错误,因为很多错误都没截图或者拍照:
然后再放一些我试过的教程链接:
Ubuntu 18.04 配置 OpenCV 3.4.5 并编写测试代码
这里还遇到一个问题就是下载opencv太慢总是下载失败,这个链接的方法是有用的。因为昨天晚上,也就是9.28晚上校园网有问题,所以我一直下载失败(其实已经好了),而我一直以为是我的问题,一直搞到一点多都没搞好,今天上午在教室一次就下好了qwq
最后配置成功的截图是这样的:
配置过程
安装cmake及opencv依赖包
1 | sudo apt-get install build-essential |
下载OpenCV
这里建议一定要在官网上下,要不可能缺失文件导致cmke编译不通过,我就是因为下的太慢而在另一个教程里学的不知道怎么搞出了一个opencv文件夹,但因为缺少文件而一直编译出错。如果网速太慢请参考上面的链接,亲测有效。
安装OpenCV
解压下载的zip文件
编译安装Opencv
进入解压得到的文件夹Opencv中
cd opencv-3.4.10
创建build文件夹并进入
1
mkdir build&cd build
- 编译
编译完成后build文件夹下的lib文件夹会包含很多.so文件
.. 1
2cmake ..
make -j8 # j8 代表使用8个线程去并行编译安装
sudo make install
设置opencv静态库加载路径
打开配置文件
`sudo gedit /etc/ld.so.conf`
加入编译后lib文件夹路径,形式如下所示,但应做修改;
include /home/***/opencv-3.4.10/build/lib
使配置文件生效。
`sudo ldconfig`
其他安装
因为opencv装完后觉得其他的都很简单的所以就合在一起写。
cmake
在安装opencv的时候就安装过了,不过我想安装一下最新版本,所以就也搞了一下。
步骤如下:
文件下载和解压
下载
wget https://cmake.org/files/v3.18/cmake-3.18.3-Linux-x86_64.tar.gz
解压
tar zxvf cmake-3.18.3-Linux-x86_64.tar.gz
查看解压后目录
tree -L 2 cmake-3.12.2-Linux-x86_64
cmake-3.12.2-Linux-x86_64
├── bin
│ ├── ccmake
│ ├── cmake
│ ├── cmake-gui
│ ├── cpack
│ └── ctest
├── doc
│ └── cmake
├── man
│ ├── man1
│ └── man7
└── share
├── aclocal
├── applications
├── cmake-3.9
├── icons
└── mime12 directories, 5 files
创建软链接
1
2mv cmake-3.18.3-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.18.3/bin/* /usr/bin/检查版本
cmake --version
git
git安装也很简单主要是配置过程复杂一些。
安装
首先,通过运行以下命令确保您的系统和apt包列表完全更新:
1
2apt-get update -y
apt-get upgrade -y运行命令安装git
1
apt install git
检查git版本
1
git --version
配置
配置自己的名称和电子邮件地址
1
2git config --global user.name "linuxidc"//填用户名
git config --global user.email "root@linuxidc.net"//填自己的邮箱查看配置更改
1
git config --list
初始化
1
2git init
git init newrepo创建版本库
1
2
3
4
5
6
7mkdir linuxmi //名字自己起
cd linuxmi
pwd //查看当前目录所在路径
git init
git add readme.txt //要先添加文件在文件夹内
git commit readme.txt //提交更多内容参考链接:git教程
boost
boost安装有一点麻烦,但相比opencv还是很简单,放一下我参考的教程:
我根据这个装的boost 1.69.0版本
安装过程
安装boost依赖库
1
2
3
4apt-get install mpi-default-dev #安装mpi库
apt-get install libicu-dev #支持正则表达式的UNICODE字符集
apt-get install python-dev #需要python的话
apt-get install libbz2-dev #如果编译出现错误:bzlib.h: No such file or directory安装boost库
解压压缩包
从boost官网下载boost_1_69_0.tar.gz,然后解压
执行配置文件
1
2cd boost_1_48_0
sudo ./bootstrap.sh #默认路径为/usr/local在当前目录下生成b2和bjam可执行文件(两者一样)
编译boost库
1
sudo ./b2 -a -sHAVE_ICU=1
安装boost库
1
sudo ./b2 install
设置动态库权限
将新安装的动态库,设置成系统共享:
1
sudo ldconfig /usr/local/lib
成功结果:没有出现 skip .. targets等非updated关键字
注:安装过程跟上面的教程一样,教程中还有编译库过程中可能出现的错误,我没有碰到,所以就没写,有需要可以看一下那个。
测试boost库
编写一个testBoost.cpp文件,内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void task1() {
// do stuff
std::cout << "This is task1!" << std::endl;
}
void task2() {
// do stuff
std::cout << "This is task2!" << std::endl;
}
int main (int argc, char ** argv) {
using namespace boost;
thread thread_1 = thread(task1);
thread thread_2 = thread(task2);
// do other stuff
thread_2.join();
thread_1.join();
return 0;
}编译运行
g++ -o testBoost testBoost.cpp -lboost_thread
其中boost 库需放在.c或.cpp之后,否则链接不能通过这里我碰到一个错误,如图:
搜了好久之后,找到这样编译可以通过
g++ -o testBoost testBoost.cpp -lboost_thread -L../boost/stage/lib -pthread
具体我也不知道为啥,,网上也没搜到答案qwq