linux安装eigen/osqp/osqp_eigen库
eigen/osqp/osqp-eigen库在Linux系统下的下载与安装
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
更多推荐
所有评论(0)