Windows VS环境下Eigen、osqp、osqp-eign库安装教程

        本文是Windows环境下Eigen、osqp、osqp-eign库安装教程,安装好后在visual studio中用模板案例进行测试。

        关于这几个库网上的安装教程并不多,教程评论区大家讨论的也不多,遇到问题了也不好解决。我在跟着其他教程安装的过程中遇到了很多的问题,最后磕磕绊绊才下好了,所以跟大家分享一下我在过程中的操作和遇到的一些问题,希望能对大家有所帮助。

一、前期准备

1.1 下载CMake

参考:Windows下Cmake安装步骤详解(图文)_windows终端安装cmake-优快云博客

【记得检查环境变量】

1.2 下载TDM-GCC

参考:tdm-gcc 的下载、安装教程【超详细】-优快云博客

【记得检查环境变量】

二、库的下载与安装

2.1 Eigen的下载与安装

Eigen官网链接http://eigen.tuxfamily.org/index.php?title=Main_Page

Step1 下载并解压

        我将Eigen、osqp、osqp-eigen全部放在了文件夹Osqp下,大家自己想放哪儿放哪儿就好,自己知道在哪儿就好。

Step2 配置环境变量

【此电脑双击->空白处右击->属性->高级系统设置】

【点击环境变量】

【找到系统变量->点击Path】

【点击新建->将eigen的存放地址添加进Path->一路确定点回去】

Step3 复制FindEigen3.cmake

如果不进行这一步,后续可能会报错Not FindEigen3.cmake

将eigen文件夹下找到 cmake\FindEigen3.cmake 文件,并将其复制到CMake的安装目录下的CMake\share\cmake-3.30\Modules

【复制到这儿】

【至此,Eigen的工作就基本完成了】

2.2 osqp的下载与安装

Step1 下载安装

方法1 下载官网压缩包

osqp官网地址:Releases · osqp/osqp · GitHub

注意:osqp最好下载0.6.3版本,不然后续会出很多问题,还不一定能解决

【下载好解压并在里面创建空文件夹build】

我最初用的这个方法,但是到后续步骤使用CMake时,一直报错CMake error: error in configuration process, project files may be invalid,所以最后我放弃了这种方法,采用了方法二

方法2 克隆存储库
 2.1

【找到你想要将osqp放置在这里的文件夹,右击->Open Git Bash here】

这里我使用的是Git Bash,我看其他教程有在cmd里运行的,但我失败了,还找不到解决办法,所以我去下载了git,并用git bash来运行。

git下载教程:Git教程 Git Bash详细教程-优快云博客(我就按教程走到设置用户,然后后面的就没弄了)

 2.2

【输入如下指令】

git clone --recursive -b release-0.6.3 https://github.com/oxfordcontrol/osqp.git

【注意是否是你想要存放的那个文件夹】

【这里下载可能一直不成功】

解决办法参考解决 git:OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0-优快云博客

这里这样做了可能还是不成功,挂个梯子找个快一点儿的节点,然后多试十几次,就行。经验之谈

【注意:后续我的操作与其他教程不太一样,因为我按他们教程的成功不了】

 2.3

【Step2后Osqp文件里有了osqp,则代表Step2下载成功】

【在osqp下创建空文件夹build】

Step2 CMake构建 

【运行cmake-gui】

【选中osqp存放的文件夹和刚建立的build文件夹】

【先点击configure,再点击generate】

点击configure时需要选择一些配置
第一项根据你的visual studio版本来,我是2022版,就选择的visual studio 17 2022那个选项

后几项默认就行

点击configure后下方出现done的字样后,再点击generate,同样出现done后表示成功

注意:此处是很容易出问题的。如果出现了问题,如error in configuration process, project files may be invalid,大概率是前面git克隆出现了问题,有文件缺失,多去下几次尝试就好,反正我是这样

Step3 ALL_BUILD

【Step2成功后,osqp的build文件夹就会出现下面的文件,双击ALL_BUILD进入vs】

【右击解决方案->生成解决方案】

生成成功即代表osqp的任务基本完成

2.3 osqp-eigen的下载与安装

osqp-eigen的步骤与osqp基本一致,所以我直接写我采取的方法

方法2 克隆存储库
 2.1

【找到你想要将osqp-eigen放置在这里的文件夹,右击->Open Git Bash here】

这里我使用的是Git Bash,我看其他教程有在cmd里运行的,但我失败了,还找不到解决办法,所以我去下载了git,并用git bash来运行。

git下载教程:Git教程 Git Bash详细教程-优快云博客(我就按教程走到设置用户,然后后面的就没弄了)

 2.2

【输入如下指令】

git clone https://github.com/robotology/osqp-eigen.git

【注意是否是你想要存放的那个文件夹】

 2.3

【Step2后Osqp文件里有了osqp-eigen,则代表Step2下载成功】

【在osqp-eigen下创建空文件夹build】

Step2 CMake构建 

【运行cmake-gui】

【选中osqp-eigen存放的文件夹和刚建立的build文件夹】

【先点击configure,再点击generate】

此处第一次configure是一定会失败的,因为有设置需要更改

【如下图操作,将osqp_DIR的value改为osqp的build文件所在位置,将Eigen3_DIR的value改为eigen所在文件夹,然后再次点击configure,此时会成功,然后再点击generate】

Step3 ALL_BUILD

【Step2成功后,osqp-eigen的build文件夹就会出现下面的文件,双击ALL_BUILD进入vs】

【右击解决方案->生成解决方案】

生成成功即代表osqp的任务基本完成

三、案例测试

Step 1 新建项目

找到osqp-eigen->example->src->MPCExample.cpp,复制该文件

新建一个vs项目,将该文件粘贴到资源文件

Step 2 配置

【项目->xx和属性->VC++目录】

【包含目录配置】

需要osqp的include、osqp-eigen的include、eigen所在文件夹

【库目录配置】

【链接器配置】

Step 3 运行

基本上到此,程序就能运行了。

可能会出现M_PI未定义报错的情况,点击报错信息,在报错这个文件里,添加如下语句即可

 #include <corecrt_math_defines.h>

如果出现头文件有缺失的情况,一种是上一种可以直接补充,还有可能就是前面osqp的git下载有残缺,回去多下载几次,多试几次。

基本上这样就代表安装完成了

四、参考文章

1.Windows C++ 环境下 eigen、osqp、osqp-eigen安装教程_windows eigen-优快云博客

2.VS2019完成osqp与osqp+Eigen编译、环境配置以及程序测试_vs osqp-优快云博客

3.Eigen,osqp,osqp-eigen库Windows安装_osqp0.6.2安装-优快云博客

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值