Skip to content

osqp-v0.6.3-src.tar.gz这个文件没有对应的OSQP CMake 配置文件,而且需要手动把里面的文件移动的对应的安装目录,比较麻烦。 #8

@13892039966

Description

@13892039966

如果有人遇到了类似的问题,希望下面的步骤能帮你解决问题:
解压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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions