qpOASES是一个解qp问题的优化库,MIT cheetah系列就使用该库解MPC
步骤
1. qpOASES安装,cmake编译安装版本的,用的不是官方版。
2. cmake组织工程,编译,运行。
# 下载
$ git clone https://github.com/coin-or/qpOASES.git
# 或者是直接下载压缩包解压
$ mkdir build
$ cd build
$ cmake ..
$ sudo make
$ sudo make install
查看/usr/local/include目录下是否有qpOASES.hpp文件
查看/usr/local/lib目录下是否有libqpOASES.a的库文件
确认无误后
cd ~
mkdir qptest
cd qptest
touch example1.cpp
touch CMakeLists.txt
CMakeLists.txt文件主要负责编译,比较重要。example1.cpp文件可以从下载的包的例子目录中拷贝过来。头文件使用
include <qpOASES.hpp>
CMakeLists.txt文件内容
cmake_minimum_required(VERSION 3.16)
project(qp_solution)
set(CMAKE_CXX_FLAGS "-std=c++11")
link_directories("/usr/local/lib")
include_directories("/usr/local/include")
add_executable(example example1.cpp)
target_link_libraries(example libqpOASES.a)
然后编译运行
mkdir build && cd build
cmake ..
make
./example
参考博客:
链接安装的外部库找不到时,一个是查看是否已经安装,并查看是否放到正确的目录下面。
使用${EXTRA_LIBS}变量自动会搜索"/usr/local/lib"或“/usr/lib/”路径下的.so库或者软连接。找不到库时,可以使用软连接将库文件放到这些目录下。
比如:
sudo ln -s /home/user/laikago_sdk/lib/liblaikago_comm.so /usr/lib/
设置EXTRA_LIBS变量
set(EXTRA_LIBS -pthread liblaikago_comm.so lcm)
打印下变量的路径内容
message("print:"${EXTRA_LIBS})