linux安装eigen/osqp/osqp_eigen库

eigen,osqp,osqp-eigen库的安装


因为个人的需求:本人论文的车辆纵向控制算法为MPC算法,需要用到C/C++语言的二次规划求解器(OSQP)和矩阵运算库eigen。因此,在编写MPC代码之前,是需要在Linux下部署以下三个矩阵计算库

我没记错的话,osqp-eigen依赖于osqp库,osqp依赖于eigen库,建议安装顺序建议如下:
	 1.eigen
	 2.osqp
	 3.osqp-eigen

一、eigen-3.4.0库的安装

链接: eigen-3.4.0库下载地址
1.1 将下载好的eigen-3.4.0文件夹拷贝到主目录下,进入到eigen-3.4.0文件夹中,在当前路径下右键打开终端,并输入以下指令,完成eigen库的安装

//打开终端,进入/eigen-3.4.0文件夹,然后执行以下指令
mkdir build
cd build
cmake ..
sudo make install
//拷贝头文件到系统的用户头文件中,方便后期管理
sudo cp -r /home/qjj/eigen-3.4.0  /usr/local/include/eigen3  

我的eigen-3.4.0的绝对路径是/home/qjj/eigen-3.4.0,这里要换成你那边的绝对路径

二、osqp库的安装

链接: osqp库下载地址
2.1 将下载好的osqp文件夹拷贝到主目录/home,进入到下载好的osqp文件夹中,在当前路径下右键打开终端,并输入以下指令,完成osqp库的安装

//打开终端,进入osqp文件夹,然后执行以下指令
$ mkdir build   //然后创建build文件夹
$ cd build      //再进入build文件夹
$ cmake ..      //在build文件夹中进行编译
$ cmake .. -DCMAKE_INSTALL_PREFIT=usr/local/osqp
$ sudo make install
$ source ~/.bashrc  //刷新环境变量

三、osqp-eigen库的安装

链接: osqp-eigen库下载地址
将下载好的osqp-eigen文件夹拷贝到主目录/home,进入到下载好的osqp-eigen文件夹中,在当前路径下右键打开终端,并输入以下指令,完成osqp-eigen库的安装

//打开终端,进入osqp-eigen文件夹,然后执行以下指令
$ mkdir build       //然后创建build文件夹
$ cd build          //再进入build文件夹
$ cmake ..          //在build文件夹中进行编译
$ cmake .. -DCMAKE_INSTALL_PREFIT=usr/local/osqp-eigen
$ sudo make install
$ source ~/.bashrc  //刷新环境变量

四、测试这三个矩阵计算库是否配置完成

不出以外的话,基本会报错
测试代码链接:测试代码下载地址
注:该测试代码从该博主的文章中获得(感谢这位博主)。
那么获得该测试代码之后,怎么把它部署到自己的电脑上面呢?
首先我们先看该代码的cmakelist.txt文件

cmake_minimum_required(VERSION 3.0.2)
//工程名称
project(test)
//动态库路径
link_directories(
  /usr/local/lib 
  )
 //头文件路径
include_directories( include )
//生成的可执行程序名字
add_executable(testqjj  
               test.cpp  )
//需要连接到可执行文件testqjj的动态库
target_link_libraries(testqjj
                      libosqp.so  
                      libOsqpEigen.so 
                      libqdldl.so )

随后执行以下指令

//理论上,当下载好test_test文件夹后,执行以下指令,出现图一的计算结果,
//-说明这三个库安装配置完成,并可以使用
//-但是一般没这么顺利-------------哈哈哈哈哈哈哈哈哈哈
$ cd test_test    // 进入test_test文件夹
$ mkdir build       //然后创建build文件夹
$ cd build          //再进入build文件夹
$ cmake ..          //在build文件夹中进行编译
$ make 
$ ./testqjj               //运行当前文件夹下面的可执行程序testqjj

理论上来说,如果以上三个库都配置完成后,测试代码就可以正常编译,正常运行(如图1所示)
请添加图片描述
图1
但是一般会报错,如图2所示。
请添加图片描述图2

报错的原因,一般的都是osqp-eigen文件夹里面的头文件找不到osqp文件里面的头文件,如找不到osqp里面的头文件,只需要把osqp文件夹里面的头文件的绝对路径给加上去即可。如图3所示,第12行在原有的地址上,加上了osqp.h头文件的绝对路径。
请添加图片描述
图3
**注意:在对系统里面的文件进行编辑的时候,要获取超管权限才可以对其进行编辑,否则只能看,不能写。我们都知道获取超级管理员的指令是:su。有时候“su”的时候会警告一些问题,这边建议您先输入以下指令:

//打开终端,然后执行以下指令
sudo passwd //然后按照指示输入你的开机密码,一般要输入两遍

然后再尝试su,获取超级管理员的权限。

一般的话,其他还需要添加文件绝对路径的地方,如下所示请添加图片描述图4

请添加图片描述图5
请添加图片描述图6
请添加图片描述图7
请添加图片描述图8

  • 27
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴郎同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值