ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)

本文主要是介绍ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ORB-SLAM2程序的准备工作及编译(途中解决各种疑难杂症)

  • 第一步(Prerequisites):准备各种库和预备包
    • 第二步(Building):建立ORB-SLAM2库
      • 第三步(Running):编译与调试

第一步(Prerequisites):准备各种库和预备包

1.首先要确定是否安装了C++11或者C++0x编译器
没有安装的,可以用命令:
1.1 更新包列表:

sudo apt update

1.2 安装build-essential软件包:

sudo apt install build-essential

这个命令会安装一堆新包,包括gcc,g++和make,耐心等待即可。
1.3最后可以验证GCC编译器是否成功安装:

gcc --version

输出:
gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
Copyright © 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2.下载Pangolin包,
2.1参考这个链接(可以现在windows上下载号tgz,再解压成文件复制到ubutun里)
或命令(推荐):

git clone https://github.com/stevenlovegrove/Pangolin.git

2.2 编译安装

cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

(1)在执行make -j4的时候可能会遇到如下问题:No package 'xkbcommon’
在这里插入图片描述解决这个问题,执行如下命令:

sudo apt-get install libxkbcommon-dev

(2)也可能遇到问题:No package ‘wayland-protocols’ found
在这里插入图片描述解决方法:

sudo apt-get install wayland-protocols

然后依次执行上面的命令,make -j4执行成功如下图所示:
在这里插入图片描述在这里插入图片描述3.依赖项:
c++11
OpenGL (Desktop / ES / ES2)

sudo apt install libgl1-mesa-dev

Glew

sudo apt install libglew-dev

CMake (for build environment)

sudo apt install cmake

Python2 / Python3, for drop-down interactive console

sudo apt install libpython2.7-dev

Wayland
pkg-config

sudo apt install pkg-config

Wayland and EGL

sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

Building

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .

Python

sudo python -mpip install numpy pyopengl Pillow pybind11
git submodule init && git submodule update

The python module pypangolin must be on your python path, either through installation, or by setting it explicitly:
(输入自己的pypangolin路径)

import sys
sys.path.append('path/of/pypangolin.so')

4.下载并安装OpenCV(至少是2.4.3版本以上的,这里下载的是OpenCV 3.2 source)
也可以通过指令下载:

git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git

(一定要下载对应的opencv_contrib)!!!(我就是下载了不对应的报了若干若干若干的错误!!!!)
这个过程需要等待一段时间,具体依赖与你的网速啦,下载成功后,可以在你的home目录下看见opencv和opencv_contrib两个文件夹,将opencv_contrib目录移到opencv目录下。

在下载的过程中,我们可以添加opencv所需要的依赖库:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

以上步骤完成后,我们进入opencv目录,创建build目录:

cd opencv
mkdir build

进入build目录,开始编译,执行(注意后面的两个点不能少):

cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

在执行cmake指令的时候,需要下载一个ippicv_linux_20151201.tgz文件,如果网不好,可能会卡在:
ICV: Downloading ippicv_linux_20151201.tgz…
这时候可以单独下载 ippicv_linux_20151201.tgz文件:文件大小36.5MB,下载链接:https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz
下载后放到 ‘/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/’ 文件夹下再重新cmake就行了。

5.ROS的下载(可选可不选):RGB-D,stereo等样例要用到ROS。

第二步(Building):建立ORB-SLAM2库

1.克隆储存库:

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

若git指令没找到,即出现:
在这里插入图片描述运行:

sudo apt install git

在这里插入图片描述继续运行上面的git指令:

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

在这里插入图片描述执行:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

在这里出错了:
在这里插入图片描述真正的问题是:configure: error: no acceptable C compiler found in $PATH

解决方法:执行 yum install gcc-c++

然后继续make 可以正常执行。

所以安装:yum

1.1 打开终端,首先安装build-essential程序包,输入命令:

apt-get install build-essential

在这里插入图片描述已满足。
1.2 接着安装yum,输入命令:

apt-get install yum

在这里插入图片描述1.3 安装完成,但是没有源,不能直接使用yum来安装软件,于是尝试着把fedora上的源放到ubuntu上使用。首先进入网址下载fedora-163.repo和fedora-updates-163.repo这两个文件, 并复制到/etc/yum/repos.d/目录下。
利用cd进入下载的文件夹,复制:

sudo cp fedora-163.repo /etc/yum/repos.d/
sudo cp fedora-updates-163.repo /etc/yum/repos.d/

1.4 复制完成后编辑这两个文件,将$releasever全部替换成17(其他的数字也可以,这个表示fedora的发行版本)。替换命令为:起始行,终止行s/被替换内容/替换内容/g,即

1,29s/$releasever/17/g
1,29s/$releasever/g

这时候,出现了文件只允许读,不允许写的状况。
所以打开文件(为这里用的vim),编辑结束后,加上:

:w !sudo tee %

输入密码
在这里插入图片描述一直按enter键确认
在这里插入图片描述完成编辑
1.5 最后运行命令:

yum makecache 

来生成缓存。之后就可以使用yum了,但是如果你想直接使用yum安装软件可要小心点,因为你的系统并不是fedora,最多相当于一个没有安装任何软件的fedora。

这时候出现了一个致命的错误:

Error: Cannot retrieve repository metadata (repomd.xml) for repository: fedora

在CSDN and google上查阅了大量资料,根本无济于事,误人子弟。这个问题其实就是链接打不开
下面介绍解决措施:

1.5.1 删除路径/etc/yum.repos.d/下的fedora-163.repo和fedora-updates-163.repo文件,然后在/etc/yum.repos.d目录中建立fedora.repo文件。
Tip:删除文件的命令:
强制删除文件夹并提示

sudo rm -r 文件夹名 

强制删除文件夹不提示 (最暴力)

sudo rm -rf 文件夹名

可按照配置生成器进行repo文件的生成,并根据提示保存配置,
在fedora.repo文件中输入:

[fedora]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[fedora-debuginfo]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/releases/$releasever/Everything/$basearch/debug/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[fedora-source]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/releases/$releasever/Everything/source/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates-debuginfo]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/updates/$releasever/$basearch/debug/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch[updates-source]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/updates/$releasever/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

显然这个baseurl不能用,所以换用国内的源(镜像站点),推荐中科大、阿里云、浙大、网易等的源。
1.5.2 查找对应的路径:
在这里插入图片描述1.5.3 替换baseurl:

[fedora]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/x86_64/os/
[fedora-debuginfo]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/x86_64/debug/
[fedora-source]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/source/SRPMS/
[updates]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/
[updates-debuginfo]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/x86_64/debug/
[updates-source]
name=Fedora $releasever - $basearch
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/source/SRPMS/

在这里插入图片描述1.5.4 运行命令:

yum makecache

在这里插入图片描述成功。
继续运行命令:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

报错:
在这里插入图片描述google上的解决措施
这实际上是Opencv的版本的问题,还记得我说过opencv版本要对应,于是下载opencv 3.4.1:
命令:

get -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip官网

安装依赖库:

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev  

在opencv-3.4.1文件夹的目录下创建编译文件夹build,进入~/opencv-3.4.4/build,执行cmake

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..

在这里插入图片描述执行make

sudo make

在这里插入图片描述执行make install命令

sudo make install

在这里插入图片描述 配置OpenCV的编译环境,目的是让系统找到OpenCV的库的路径,打开编写一个空白的文件opencv.conf

sudo gedit /etc/ld.so.conf.d/opencv.conf 

在opencv.conf中添加如下内容

/usr/local/lib  

使刚配置路径生效

sudo ldconfig  

打开bash文件,配置bash

sudo gedit /etc/bash.bashrc  

在打开的bash.bashrc的最末尾添加如下代码

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

在这里插入图片描述保存关闭文件,使刚才的配置生效
在这里插入图片描述2.安装Eigen
使用命令

sudo apt-get install libeigen3-dev

在这里插入图片描述官网:Egien
3.进入ORB_SLAM2目录,给build.sh文件可执行权限,编译ORB-SLAM2,运行如下命令

cd ORB_SLAM2
chmod +x build.sh
./build.sh

在这里插入图片描述
在这里插入图片描述编辑bash文件

sudo  gedit ~/.bashrc

将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中。打开.bashrc文件并在最后添加的内容如图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201012214541408.png#pic_center

第三步(Running):编译与调试

问题一:usleep问题(致命)
在这里插入图片描述解决usleep问题:在ORB-SLAM2中的include文件夹里面的system.h加入#include<unistd.h>
在这里插入图片描述打开Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h
将以下代码:

template <typename MatrixType>
class LinearSolverEigen: public LinearSolver<MatrixType>
{ public: typedef Eigen::SparseMatrix<double, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet<double> Triplet;
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;

修改为:

template <typename MatrixType>
class LinearSolverEigen: public LinearSolver<MatrixType>
{ public:
typedef Eigen::SparseMatrix<double, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet<double> Triplet;
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, int> PermutationMatrix;

或运行时出现如下错误
在这里插入图片描述解决办法:在~/home/crown/Desktop/ORB_SLAM2/Examples/ROS/ORB_SLAM2/文件夹下修改CMakeLists.txt文件,在set(LIBS…)后面添加如下的一句话,井使它生效

-lboost_system

在这里插入图片描述问题二:install cimpiler error:killed(program cciplus)
在这里插入图片描述直接关机重启就好了。
问题三:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
在这里插入图片描述解决办法:
1.直接运行sudo chmod 777 /etc,避免出现mkdir无法创建该包的错误.,如下图
在这里插入图片描述2.自己相应文件夹下/etc/ros/rosdep/sources.list.d去创建目录 20-default.list
在这里插入图片描述效果如下:
在这里插入图片描述问题5.在home打开终端继续执行命令,会出现另外的错
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
在这里插入图片描述解决办法:sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
在这里插入图片描述在这里插入图片描述问题5:
/src/ros_rgbd.cc:35:
/home/mango/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/…/…/…/Thirdparty/g2o/g2o/types/…/core/jacobian_workspace.h:30:10: fatal error: Eigen/Core: No such file or directory
#include <Eigen/Core>
^~~~~~~~~~~~
compilation terminated.
在这里插入图片描述在这里插入图片描述分别将se3_ops.h、se3quat.h…等等出现问题的XXX.h文件找到,打开将里面的

#include <Eigen/Core>

改为:

#include <eigen3/Eigen/Core>

在这里插入图片描述问题6:出现error:'usleep’问题(最多的!)
在这里插入图片描述解决办法:根据提示哪个文件有这个问题,将它找到,在引入头文件地方添加如下

#include<unistd.h>

或者在/home/crown/ORB_SLAM2/include/system.h
添加

#include<unistd.h>

问题7:在编译ORB-SLAM2时,出现cpp项目编译时报错: c++: internal compiler error: Killed
原因是内存不够,并且没swap,增加swap
解决办法

sudo -s
dd if=/dev/zero of=/tmp/newdisk bs=1M count=8000
du -sh /tmp/newdisk
mkswap -f /tmp/newdisk 
free -m
chmod 0600 /tmp/newdisk
swapon /tmp/newdisk
free -m

在这里插入图片描述下载数据集
有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从下载序列并解压缩。
在这里插入图片描述在这里插入图片描述编译
PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg
我的数据集放在/home/crown/Desktop/Dataset-slam目录下

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/mango/catkin_ws/src/rgbd_dataset_freiburg1_xyz

在这里插入图片描述执行以下命令。KITTIX.yaml分别将序列0到2、3和4到12 更改为KITTI00-02.yaml,KITTI03.yaml或KITTI04-12.yaml。更改PATH_TO_DATASET_FOLDER未压缩的数据集文件夹。更改SEQUENCE_NUMBER为00,01,02,…,11。
运行步骤和上面一样:

./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

上面青色就是要修改的部分,其中“PATH_TO_DATASET_FOLDER”就是要找到你要运行的数据集的位置,你要找到你下载的数据集关键文件夹“dataset/sequences/”在哪。然后一步步执行。我保存并运行的是序列00数据,且保存在Data/KITTI目录下
所以就是

./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTI00-02.yaml Data/KITTI/data_odometry_gray/dataset/sequences/00

在这里插入图片描述Tip:
1.(font)字体
infinality字体渲染

The default font is ugly. Copy Microsoft’s truetype font is not a good method, it’s nasty.(默认字体不是很好看,而且复用微软的真实类型字体不是一个好方法,这很不好。)
I use infinality. Though the website don’t update anymore.
First, download fontconfig-infinality and freetype-infinality:
(使用无限式。 虽然网站不再更新。首先,下载fontconfig-infinality和freetype-infinality)

wget http://www.infinality.net/fedora/linux/20/noarch/fontconfig-infinality-1-20130104_1.noarch.rpm
wget http://www.infinality.net/fedora/linux/20/x86_64/freetype-infinality-2.4.10-1.20120615_01.fc17.x86_64.rpm

然后使用rmp指令安装:

sudo rpm -ivh fontconfig-infinality-1-20130104_1.noarch.rpm freetype-infinality-2.4.10-1.20120615_01.fc17.x86_64.rpm 

可以手动的解决…
then, set the font renderr style using infinality script. I choose osx style. the command is:(然后选择一个风格:)

sudo /etc/fonts/infinality/infctl.sh setstyle

MONACO字体
用MONACO作为等宽字体。

wget http://jsdx.sc.chinaz.com/Files/DownLoad/font2/908.rar   # 下载MONACO字体
sudo yum install unrar         # 下载unrar:
unrar x 908.rar   # 解压
cd 908
sudo mkdir -p /usr/share/fonts/my_font
sudo mv MONACO.TTF /usr/share/fonts/my_font/
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv  # 更新字体缓存

opencv
用指令下载opencv:

yum list *opencv*

或者也可以使用合适的安装包去下载:

sudo yum install opencv-core opencv opencv-devel opencv-python

close SELinux
SELinux is useless for common people. Just close it.(SELinux是基本无用,还不如减少内存,关了它)

sudo vim /etc/selinux/config

改变目录:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled            # here we modify "enforcing" to "disabled"
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

chrome
First, download chrome. I don’t like using a repo for chrome, since every time the system updates, it speed down.

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

then use yum to download depences:

yum install redhat-lsb
yum install libXScrnSaver

now let’s install chrome:

sudo rpm -ivh google-chrome-stable_current_x86_64.rpm 

python

这里配置了python、python-devel以及pip

sudo dnf install python python-devel python-pip

然后创建pip的用户自配置文件,使用阿里云的源来加速访问,即创建并编辑~/.pip/pip.conf,内容为:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

git
git配置ssh

ssh-keygen -t rsa -C "zchrissirhcz"//注意。zchrissirhcz为用户名
//然后三次回车
cat /home/forwhat.cn/.ssh/id_rsa.pub
//复制cat出来的内容

然后到github上个人账户设置中配置SSH Keys:把cat出来的内容贴上去
vim
I use vundle to manage my vim plugins.

sudo yum install vim
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
mkdir -p workspace/gitwhat
cd workspace/gitwhat
git clone https://github.com/zchrissirhcz/dotfiles
mkdir -p ~/.vim/colors
cp molokai.vim ~/.vim/colors

then open vim and do bundle install:

:BundleInstall

fcitx输入法
不必卸载默认的ibus。

sudo yum install fcitx-pinyin
sudo yum install fcitx-configtool
sudo yum install im-chooser
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
im-chooser

弹出的对话框中选择fcitx。重启后可以使用。
配置: 使用 fcitx-configtool 进行配置。
在全局配置的快件键->显示高级选项中,我把切换激活/非激活输入法设定为左shift,输入法切换键设定为Ctrl+Space。

如果ctrl+空格无法设定,结果显示是LCtrl,也就是左Control键。这种情况是你的Ctrl+Space被别的程序捕获了,比如我在系统设置->全部设置->键盘->快捷键->打字->切换至下个输入源,这里设定为了Ctrl+Space,这里改掉,fcitx那里就可以设定Ctrl+Space来激活输入法了。

快捷键
配置开启终端快捷键
设置->键盘->快捷键->自定义快捷键->添加:

name:terminal
command:/usr/bin/gnome-terminal
#按键设定为Ctrl+Alt+T

配置截屏快捷键

mkdir ~/bin
cd ~/bin
vim screenshot

添加如下内容:

#!/bin/bash
gnome-screenshot -ai

添加软链接并添加可执行权限:

sudo ln -sf /home/chris/bin/screenshot /usr/bin/screenshot
chmod +x ~/bin/screenshot

最后到:设置->键盘->快捷键->自定义快捷键->添加:

name:screenshot
command:screenshot
#按键设定为Ctrl+Alt+Q

美化终端显示[(安装Arc GTK主题(7k+))]
1.直接在 Ubuntu 16.04 LTS 的「终端」中使用如下命令先行添加 Arc GTK theme 源之后进行安装:

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04/ /' >> /etc/apt/sources.list.d/arc-theme.list"

2.要让 Arc GTK 主题源难免正常工作并定期收到主题更新,还需要安装在终端中执行如下命令安装软件源的密钥,不然无法正常使用:

wget http://download.opensuse.org/repositories/home:Horst3180/xUbuntu_16.04/Release.key
sudo apt-key add - < Release.key

3.上面第一行代码会自动下载 Arc GTK theme repository key,第二行代码会导入并启用软件 repo,当系统提示「OK」时表示已经导入成功,此时使用如下命令便可开始安装 Arc GTK 主题:

sudo apt update
sudo apt install arc-theme

在这里插入图片描述4.主题安装好之后,我们还是使用 Unity Tweak Tool 来对其进行激活使用。Ubuntu 16.04 LTS 的官方源中已经提供了 Unity Tweak Tool,使用如下命令进行安装:

sudo apt install unity-tweak-tool

在这里插入图片描述5.打开 Unity Tweak Tool 工具,在「主题」选项的 GTK 主题列表中选择喜欢的 Arc GTK 主题系列(Arc、Arc-dark 或 Arc-darker 主题)即可。

取消终端下光标闪烁

gsettings set org.gnome.desktop.interface cursor-blink false

virtualbox虚拟电脑目录的移动
比如原来放在$HOME下,现在空间不够了,但是/opt是有空间的。怎样移动过去呢?

先用命令移动整个目录到目标位置
再设置全局的虚拟电脑目录(管理-》全局设定-》默认虚拟电脑位置)
(可能要修改/etc下的一个vbox配置文件)
然后发现原来的vbox都报错了打不开 刷新也没用
在vbox主界面中删除原有的vbox
在vbox主界面 控制-》注册-》选择新位置的vdi文件
vdi文件扩容

VBoxManage modifyhd         <uuid>|<filename>     [--resize <megabytes>|--resizebyte <bytes>]

比如:

vboxmanage modifyhd fedora22.vdi --resize 20480

然后进入系统(你当然是要在关闭它时候才修改vdi文件大小的。。),发现还是原来容量,但是有了一块‵空闲区域`。
fdisk命令已经不太会用了。不过gparted很好用:

sudo yum install gparted

在终端中打开文件夹,以及在文件夹中打开终端

sudo dnf install nautilus-terminal nautilus-open-terminal

这篇关于ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/249641

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用