查看Eigen版本:pkg-config --modversion eigen3
或vim /usr/include/eigen3/Eigen/src/Core/util/Macros.h
查看OpenCV版本:pkg-config --modversion opencv
或打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,在里面可以看到版本号
PCL版本号查询:sudo apt-get install libpcl-dev
查看本机线程数:grep 'processor' /proc/cpuinfo | sort -u | wc -l
--------------------------------------------------------------------------------------------------------------------
1、查找OpenCV的位置sudo find / -iname "*opencv*"
安装位置:usr/include
CMAKE_INSTALL_PREFIX 是opencv的安装地址 默认安装在 usr/local
2、(1)什么是库
简单说,库就是一些头文件与库文件(可能包括静态库与动态库两种)的集合。
库文件通过头文件向外导出接口,头文件中有函数的声明,库文件中是对应的实现。
(2)位置
①安装的第三方软件
/usr/bin 可执行文件
/usr/lib 可执行文件的库文件
/usr/include 可执行文件的头文件
②安装的第三方库
/usr/local/bin 安装的库的一些测试程序
/usr/local/lib 安装的库的库文件
/usr/local/include 安装的库的头文件
自己安装两个opencv:
假设我们已经安装好一版OpenCV,一般都安装在/usr/local下。
如果需要安装另一个版本的OpenCV,就不能再安装到/usr/local,而是选择其他路径,否则会覆盖掉之前的版本。
一、 安装
step-1:$ cd ***/opencv-3.3.1 //到opencv-3.3.1的解压目录下
step-2:$ mkdir build
step-3:$ cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/OpenCV3.3.1 .. //注释,这里的.. 不要忘记
step-4:$ make -j8
step-5:sudo make install
二、配置OpenCV环境
step-1:sudo gedit ~/.bashrc
step-2:记下来,在上述打开的文件末尾,加上如下:#OpenCV_4.2.0
export PKG_CONFIG_PATH=/usr/local/OpenCV3.3.1/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/OpenCV3.3.1/lib
step-3:$ source ~/.bashrc更新下
三、查询OpenCV版本
$ pkg-config --modversion opencv
如果输出3.3.1,就表明配置成功。
如果想使用之前的版本,在sudo gedit ~/.bashrc中注释掉增加的内容,然后source ~/.bashrc即可。
在OpenCV编译好后,所在目录中会生成OpenCVConfig.cmake文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。
存在多版本OpenCV时,需要找到所需版本对应的OpenCVConfig.cmake文件,并将其路径添加到工程的CMakeLists.txt中。
cmake_minimum_required(VERSION 2.8)
set(OpenCV_DIR /usr/local/opencv_3.3.1/share/OpenCV)
project(test)
find_package(OpenCV_DIR REQUIRED)
message("OpenCV version is : ${OpenCV_VERSION}")
在set的时候,一定要设置OpenCVConfig-version.cmake所在的位置
一定要设置OpenCVConfig-version.cmake所在的位置
一定要设置OpenCVConfig-version.cmake所在的位置
电脑自带的OpenCV3.2的OpenCVConfig.cmake原来的位置:
新安装OpenCV3.3.1的OpenCVConfig.cmake所在位置:
Eigen卸载:
1、删除系统自带的eigen:
2、删除自己下载的eigen:
![]() |
sudo mv /usr/include/eigen339
sudo mv /usr/local/share/eigen3
sudo mv /usr/local/share/pkgconfig/eigen3.pc
总之就是看见eigen就删了
Eigen下载指定版本:
1、从这里下载不同版本的eigen库: Releases · libeigen / eigen · GitLab
2、进入解压出来的文件夹,打开终端,依次执行如下命令进行编译和安装即可:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/eigen_output ..
sudo make install
这样会在~/eigen_output文件下生成eigen3库,进去后应该是长这样的:
注:这里的eigen_output文件是临时存放库文件用的,后续操作完成后可以自行删除
进入include文件夹,执行以下命令:
sudo mv eigen3 /usr/include/eigen339
这里的文件名eigen339可以根据自己的需要来命名,为了方便可以按版本号命名。
若使用源码安装eigen3.3.1:
网上的教程eigen安装直接使用cmake ..,头文件安装在/usr/local/include/eigen3,将这个eigen3文件移动到/usr/include下,与前面安装的eigen339放在一起,做版本切换。
这样/usr/include目录下就存在两个版本的eigen,一个是以eigen3命名的系统版本,另外一个是以eigen339命名通过编译源码的形式安装的自选指定版本。
3、版本切换
ubuntu系统是通过eigen3.pc这个文件搜索eigen库的,上述两种方式安装都会生成一个eigen3.pc文件。
通过apt-get安装的存放在/usr/share/pkgconfig文件夹下
通过源码安装的就存放在安装目录的share/pkgconfig文件夹下
两个文件的对比如下:
最终只需要保留一个即可,这里还是选择保留/usr/share/pkgconfig下的pc文件。
但需要对该文件进行修改,由于我们的eigen3放在了/usr/include下,因此第一行不用改,保持prefix=/usr即可,需要修改Version,用哪个版本就改成哪个版本号,如上图左边所示,另一个版本用//注释掉即可,修改完保存退出。
接下来回到/usr/include下,执行以下命令:
sudo mv eigen3 eigen331 //将现在的eigen3重命名为eigen331
sudo mv eigen339 eigen3 //将eigen339设置为要使用的eigen3
这样就通过重命名的方式改变系统查找文件时的指向,进而完成了版本切换的工作。