首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用动态库qpOASES和CMakeList.txt时对qpOASES错误的引用未定义

使用动态库qpOASES和CMakeList.txt时对qpOASES错误的引用未定义
EN

Stack Overflow用户
提问于 2019-04-11 04:31:19
回答 2查看 475关注 0票数 1

我正在用ROS2构建一个包。当我想在头文件中包含动态库qpOASES时,出现了undefined reference to错误。

qpOASES安装在~下。我试过find_package(qpOASES REQUIRED)了。但是我得到了一个错误

代码语言:javascript
运行
复制
By not providing "FindqpOASES.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "qpOASES", but CMake did not find one.

在头文件中,我使用了#include <qpOASES.hpp>。在CMakeList.txt文件中,我使用了target_link_libraries(my_node Eigen3::Eigen ~/qpOASES-3.2.1/bin/libqpOASES.so)。但是当我编译它时,出现了以下错误。

代码语言:javascript
运行
复制
ltv_mpc_controller.cpp:(.text+0x4a07): undefined reference to `qpOASES::SQProblem::SQProblem(int, int, qpOASES::HessianType, qpOASES::BooleanType)'
ltv_mpc_controller.cpp:(.text+0x4a7b): undefined reference to `qpOASES::QProblem::init(double const*, double const*, double const*, double const*, double const*, double const*, double const*, int&, double*, double const*, double const*, qpOASES::Bounds const*, qpOASES::Constraints const*, double const*)'
ltv_mpc_controller.cpp:(.text+0x4aeb): undefined reference to `qpOASES::SQProblem::hotstart(double const*, double const*, double const*, double const*, double const*, double const*, double const*, int&, double*, qpOASES::Bounds const*, qpOASES::Constraints const*)'

有人知道如何修复这个错误吗?

EN

Stack Overflow用户

发布于 2019-07-10 07:53:19

在第110行的Linux makefile make_linux.mk中,有

代码语言:javascript
运行
复制
CPPFLAGS = -Wall -pedantic -Wshadow -Wfloat-equal -O3 -Wconversion -Wsign-conversion -fPIC -DLINUX -D__USE_LONG_INTEGERS__ -D__USE_LONG_FINTS__

尝试删除标志-D__USE_LONG_INTEGERS__ -D__USE_LONG_FINTS__

这为我解决了这个问题。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55620906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档