1. 常用非线性求解库Ceres

#===========================================================================================
# Ceres Solver install
#============================================================================================
# Dependencies: CMake, google-glog, gflags, BLAS & LAPACK, Eigen3, SuiteSparse and CXSparse.
sudo apt install cmake
sudo apt install libgoogle-glog-dev
sudo apt install libatlas-base-dev liblapack
sudo apt install libeigen3-dev
sudo apt install libsuitesparse-dev
# cmake and make
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
git checkout $(git describe --tags) # Checkout the latest release
mkdir build && cd build
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
make
sudo make install

2. 常用C++扩展库Boost

#============================================================================================
# Boost install
#============================================================================================
# remove existed boost
rm -f /usr/lib/libboost*
rm -fr 'find / -name libboost*'
# download Boost by wget
sudo apt install wget
wget https://dl.bintray.com/boostorg/release/1.58.0/source/boost_1_58_0.tar.gz
tar -zxvf boost_1_58_0.tar.gz
cd boost_1_58_0
# install dependencies
sudo apt update
sudo apt install build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev libboost-all-dev
# build environment and compile
./bootstrap.sh && ./b2
# install
sudo ./b2 install

可能会出现下面的提示,构建工程的时候注意一下就是了。

# //////////////////////////////////////////////////////////////////////////////////////////////////////////
# The following dir should be added to compiler include paths: ~/Downloads/mvs_project/boost_1_58_0
# The following dir should be added to linker library paths: ~/Downloads/mvs_project/boost_1_58_0/stage/lib
# //////////////////////////////////////////////////////////////////////////////////////////////////////////

3. 常用视觉计算处理库OpenCV

#============================================================================================
# OpenCV Install
#============================================================================================
# refresh and upgrade and pre-installed packages/libraries:
sudo apt update
# install some developer tools
sudo apt install build-essential cmake pkg-config # OpenCV needs to be able to load various image file formats from disk such as JPEG, PNG, TIFF, etc. In order to load these images from disk, OpenCV actually calls other image I/O libraries that actually facilitate the loading and decoding process.
sudo apt install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev # Use the following commands to install packages used to process video streams and access frames from cameras
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev # OpenCV ships out-of-the-box with a very limited set of GUI tools, which allow you to debug your code and build very simple applications. The “highgui” module relies on the GTK library
sudo apt install libgtk--dev # install libraries that are used to optimize various functionalities inside OpenCV, such as matrix operations:
sudo apt install libatlas-base-dev gfortran # installing the Python development headers and libraries for both Python 2.7 and Python 3.5
sudo apt install python2.-dev python3.-dev
sudo pip install numpy && sudo pip3 install numpy

安装好依赖项之后进行编译安装

#============================================================================================
# config cmake
#============================================================================================
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_GTK_3_X=ON -DWITH_TBB=OFF -DWITH_V4L=ON .. make sudo make install

在cmake步骤,如果需要使用opencv_contrib里面的功能,需要加上下面的命令

#============================================================================================
# if opencv_contrib is needed then add the following commands when cmake
#============================================================================================
-D OPENCV_EXTRA_MODULES_PATH=opencv_contrib_path/modules \
-D BUILD_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF

如果卡在ippicv下载的地方,可以手动下载配置路径,重新cmake(附下载地址:OpenCV3.4.5对应的是ippicv-2019

# ippicv_2019_lnx_inte164_general_20180723.tgz
# save the tarball as you want, and then change the configuration
"opencv-3.4.5/3rdparty/ippicv/ippicv.cmake"
# change row from the following
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# to your saved path
"file:~/Downloads/"

安装完成后需要进行如下的配置,以保证正常调用

cd /etc/ld.so.conf.d
sudo vim opencv.conf
# add in end of the file
"/usr/local/lib" and then update sudo ldconfig

4. 李代数库Sophus

#============================================================================================
# Install Sophus
#============================================================================================
sudo apt install git -y git clone https://github.com/strasdat/Sophus.git cd Sophus git checkout a621ff # Compile and install
mkdir build && cd build cmake .. make sudo make install

5. 线性和非线性方程组求解库g2o,类似于Ceres

#============================================================================================
# Ubuntu Install g2o
#============================================================================================
# Dependencies
sudo apt install libqt4-dev qt4-cmake libqglviewer.dev libsuitesparse-dev libcxsparse3.1.2 libcholmod-dev -y # Compile and install
git clone https://github.com/RainerKuemmerle/g2o cd g2o mkdir build && cd build cmake .. make sudo make install

6. 可视化依赖库OpenGL及其拓展glew

#============================================================================================
# Ubuntu install opengl
#============================================================================================
sudo apt install build-essential libgl1-mesa-dev sudo apt install freeglut3-dev libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev #============================================================================================
# Ubuntu install glew
#============================================================================================
apt-cache search glew sudo apt install libglew-dbg libglew-dev libglew1. libglewmx-dbg libglewmx-dev libglewmx1. glew-utils sudo apt install libxmu-dev

如果在C++工程编译链接时出现下面的错误,解决方案如下

#============================================================================================
# Problem
# CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
# Please set them or make sure they are set and tested correctly in the CMake files:
# GLUT_Xmu_LIBRARY (ADVANCED)
# linked by target "openglsupport" in directory {$PATH} # -- Configuring incomplete, errors occurred!
#============================================================================================
# Solution
sudo apt install libxmu-dev

7. C++开源线性代数库Eigen

该库提供了快速的有关矩阵的线性代数运算,包括解方程等功能。此库不同于其他库的特殊之处在于,它是一个纯用头文件搭建起来的库,因此在使用中没有.so或.a 之类的二进制文件,只需引入Eigen的头文件即可。

#============================================================================================
# Ubuntu Insall Eigen
#============================================================================================
# Default install path is /usr/include/eigen3
sudo apt install libeigen3-dev

当需要编译包含 Eigen 头文件的项目时,需要在 CMakeLists.txt 中指定 Eigen 的头文件目录。

#============================================================================================
# CMakeLists.txt
#============================================================================================
# add include headers
include_directories( "/usr/local/eigen3" )

8. 另外如果在ldconfig时出现下面的错误,按如下方法解决

#============================================================================================
# Problem /sbin/ldconfig.real: /usr/local/cuda-9.0/lib64/libcudnn.so. is not a symbolic link
#============================================================================================
# Solution: Create the new link manually
ls -lh /usr/local/cuda-9.0/lib64/libcudnn.so.
sudo ln -sf /usr/local/cuda-9.0/lib64/libcudnn.so.7.1. /usr/local/cuda-9.0/lib64/libcudnn.so.

Ubuntu16.04常用C++库安装及环境配置的更多相关文章

  1. 在vc中使用xtremetoolkit界面库-----安装及环境配置

    近期想用一下xtremetoolkitPro界面库.网上的使用教程资源也不多,当中着实遇到了很多的困难,毕竟是首次使用. 首先当然是配置发开环境了: 我使用的是vc6.0+xtremetoolkitP ...

  2. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  3. Ubuntu16.04下,erlang安装和rabbitmq安装步骤

    文章来源: Ubuntu16.04下,erlang安装和rabbitmq安装步骤 准备工作,先下载erlang和rabbitmq的安装包,注意他们的版本,版本不对可能会导致rabbitmq无法启动,这 ...

  4. ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

    如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...

  5. Ubuntu16.04 LTS下apt安装WireShark

    Ubuntu16.04 LTS下apt安装WireShark 安装与配置 首先通过apt安装WireShark: $ sudo apt install wireshark 会同时安装许多的依赖包,其中 ...

  6. 路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细

    公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ...

  7. ubuntu16.04下sublime text3安装和配置

    ubuntu16.04下sublime text3安装和配置 2018年04月20日 10:31:08 zhengqijun_ 阅读数:1482 1.安装方法 1)使用ppa安装 sudo add-a ...

  8. Ubuntu16.04上用源代码安装ICE

    ubuntu16.04上用源代码安装ICE

  9. ROS入门笔记(二):ROS安装与环境配置及卸载(重点)

    ROS入门笔记(二):ROS安装与环境配置及卸载(重点) [TOC] 1 ROS安装步骤 1.1 ROS版本 ROS目前只支持在Linux系统上安装部署, 它的首选开发平台是Ubuntu. 发布时间 ...

随机推荐

  1. Go语言标准库之net_http

    Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现. net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的实现. HTTP协议 超文本传输协 ...

  2. Python 为了提升性能,竟运用了共享经济

    大家或许知道,Python 为了提高内存的利用效率,采用了一套共用对象内存的分配策略. 例如,对于那些数值较小的数字对象([-5, 256]).布尔值对象.None 对象.较短的字符串对象(通常 是 ...

  3. 通过网上的webservice自己编写两个客户端

    1.根据电话号码查询归属地等信息 根据http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl采用jdk生成所需的代码,编写一个contro ...

  4. 【UEFI】---BIOS中UserPassword的重复校验总结

    UEFI作为目前较为流行的一套X86架构初始化的标准框架,已受到业界内的广泛认可.而其中很多编程所采用的思想确实值得学习.今天总结下UEFI的框架下修改代码的一点小经验,仅供菜鸟参考. 先列干货,具体 ...

  5. Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00

    目录 自己动手实现一个简易版本的web框架 手撸一个web服务端 根据请求 url 做不同的响应处理 基于wsgiref模块实现服务端 用wsgiref 模块的做的两件事 拆分服务端代码 支持新的请求 ...

  6. SpringBoot自定义过滤器的两种方式及过滤器执行顺序

    第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter 必须实现  javax.servlet.Filte ...

  7. Spring Boot初识

    今天准备开一个新系列springboot,springboot结束后会更新springcloud,想要学会springcloud先学springboot吧.以后springboot和hadoop轮流更 ...

  8. java PDF转word的初步实现

    package com.springboot.springboot.util; import java.io.File; import java.io.FileOutputStream; import ...

  9. 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  10. 搭建第一个node服务器

    1.在项目文件夹根目录创建app.js: (1)先引入模块 const http = require('http');//http是安装好node就有的一个模块,是用来创建http服务器的 (2)创建 ...