-
Notifications
You must be signed in to change notification settings - Fork 27
Description
如果有人遇到了类似的问题,希望下面的步骤能帮你解决问题:
解压osqp-v0.6.3-src.tar.gz
在 osqp-v0.6.3-Linux 目录下执行以下命令(需要 sudo 权限):
1. 创建头文件目录(确保目录存在)
sudo mkdir -p /usr/local/include/osqp
2. 移动所有头文件到标准目录
sudo cp include/*.h /usr/local/include/osqp/
3. 移动库文件到标准库目录
sudo cp lib/libosqp.a /usr/local/lib/
sudo cp lib/libosqp.so /usr/local/lib/
4. 移动许可证到文档目录(可选,但符合规范)
sudo mkdir -p /usr/local/share/doc/osqp
sudo cp LICENSE /usr/local/share/doc/osqp/
5. 更新动态链接库缓存(确保系统能识别新安装的 libosqp.so)
sudo ldconfig
2.安装后可以通过以下命令检查文件是否存在:
检查头文件
ls /usr/local/include/osqp/osqp.h
检查库文件
ls /usr/local/lib/libosqp.a
ls /usr/local/lib/libosqp.so
3.创建虚拟的 OSQP CMake 配置文件
由于 OSQP 0.6.3 没有提供官方 CMake 配置文件,你可以手动创建一个简单的配置文件:
sudo mkdir -p /usr/local/lib/cmake/osqp
然后创建文件 /usr/local/lib/cmake/osqp/osqp-config.cmake,内容如下:
OSQP CMake 配置文件
set(osqp_INCLUDE_DIRS "/usr/local/include/osqp")
set(osqp_LIBRARIES "/usr/local/lib/libosqp.so")
创建接口目标
add_library(osqp::osqp SHARED IMPORTED)
set_target_properties(osqp::osqp PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${osqp_INCLUDE_DIRS}"
IMPORTED_LOCATION "${osqp_LIBRARIES}"
)
后面执行下面的内容就不会报错了
cd osqp-eigen
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../
make
sudo make install