当前位置: 首页 > article >正文

一些使用频率高的指令及库版本安装切换

查看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-5sudo 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.2OpenCVConfig.cmake原来的位置:

新安装OpenCV3.3.1OpenCVConfig.cmake所在位置:

Eigen卸载:

1、删除系统自带的eigen

ubuntu 卸载安装eigen3-CSDN博客

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

这样就通过重命名的方式改变系统查找文件时的指向,进而完成了版本切换的工作。

参考:https://blog.csdn.net/shy2333/article/details/125036983?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-125036983-blog-127007082.235%5Ev38%5Epc_relevant_anti_vip&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-125036983-blog-127007082.235%5Ev38%5Epc_relevant_anti_vip&utm_relevant_index=10

https://blog.csdn.net/weixin_41756645/article/details/129570141?spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-15-129570141-blog-125036983.235%5Ev38%5Epc_relevant_anti_vip&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-15-129570141-blog-125036983.235%5Ev38%5Epc_relevant_anti_vip&utm_relevant_index=23

http://www.lryc.cn/news/2414627.html

相关文章:

  • android——Spinner下拉列表案例详解(2),程序员真的是吃青春饭吗
  • PeopleSoft集成EasyExcel
  • 高级网络安全管理员 - 网络设备和安全配置:SSH 配置
  • XAPOFX1_5.dll文件丢失导致程序无法运行问题
  • Go切片(slices)
  • QT_快速入门
  • 深度linux 官网,深度OS
  • BZOJ 4698: Sdoi2008 Sandy的卡片
  • AfxBeginThread和CreateThread具体区别
  • 将 Notepad++ 或 Ultra Edit 添加到鼠标右键菜单
  • 深入了解在Linux中重命名文件和目录的技巧!
  • 关于 DRM 中 DUMB 和 PRIME 名字的由来
  • VirtualBox
  • Word公式编辑器的使用方法
  • 服务器租用一年需要多少钱?
  • 学生成绩管理系统的设计与实现-附源码070942
  • 行列式的几种运算方法
  • 从linaro下载安装二进制文件安装交叉编译工具
  • BCR认证是什么?
  • answer的汉语_Answer的中文意思是什么?
  • 进程间的通信方式(六种)
  • rails 入门笔记
  • 【史上最全,从经典到最新】24种信号分解方法(附matlab代码)
  • N2N组建虚拟局域网
  • USB驱动(一、概念介绍及USB总线驱动程序代码分析)
  • element日期选择器datepicker用法大全
  • UCOS-III 操作系统深度剖析与实战应用教程
  • Arrays.sort()的用法
  • 滚动条样式锦集
  • 2024年最新网络安全行业名词_失陷主机(1)