我不得不通过cmake在c项目中包含pinocchio(一个机器人技术的开源库),但是目前它失败了。
我已经安装了pinocchio c,没有通过python绑定
sudo apt install -qqy robotpkg-pinocchio
我已经尝试了文档www.example.com中的简单示例https://gepettoweb.laas.fr/doc/stack-of-tasks/pinocchio/master/doxygen-html/index.html#OverviewComplex
如果我用最简单的例子中的源代码编译它,它就能工作:
g++ -std=c++11 overview-simple.cpp -o overview-simple $(pkg-config --cflags --libs pinocchio)
为了将Pinocchio包含在一个单独的c++项目中,我尝试了以下方法:
1.发现它是这样的一个包:
find_package(pinocchio 2.6.10)
但它失败,并显示以下消息:
By not providing "FindPinocchio.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Pinocchio", but CMake did not find one.
Could not find a package configuration file provided by "Pinocchio"
(requested version 2.6.10) with any of the following names:
PinocchioConfig.cmake
pinocchio-config.cmake
Add the installation prefix of "Pinocchio" to CMAKE_PREFIX_PATH or set
"Pinocchio_DIR" to a directory containing one of the above files. If
"Pinocchio" provides a separate development package or SDK, be sure it has
been installed.
我可以在cmake文件中指定安装pinocchio库的路径吗?
1.添加编译选项/标志,就像文档中的示例一样
target_compile_options(${PROJECT_NAME} PUBLIC $(pkg-config --cflags --libs pinocchio))
但这也会抛出一个错误消息。如果它对pkg-config --cflags --libs pinocchio
有帮助,则给出以下内容:
-DPINOCCHIO_WITH_URDFDOM -DPINOCCHIO_WITH_HPP_FCL -DHPP_FCL_HAS_OCTOMAP -DHPP_FCL_HAVE_OCTOMAP -DFCL_HAVE_OCTOMAP -DOCTOMAP_MAJOR_VERSION=1 -DOCTOMAP_MINOR_VERSION=9 -DOCTOMAP_PATCH_VERSION=7 -I/opt/openrobots/lib/pkgconfig/../../include -I/opt/openrobots/include -I/usr/local/include/eigen3 -I/usr/lib/x86_64-linux-gnu/pkgconfig/../../../include -L/opt/openrobots/lib/pkgconfig/../../lib -L/opt/openrobots/lib -L/usr/lib/x86_64-linux-gnu/pkgconfig/../../../lib/x86_64-linux-gnu -Wl,-rpath,/opt/openrobots/lib/pkgconfig/../../lib -lpinocchio -Wl,-rpath,/usr/lib/x86_64-linux-gnu -lboost_filesystem -lboost_serialization -lboost_system -lurdfdom_sensor -lurdfdom_model_state -lurdfdom_model -lurdfdom_world -lconsole_bridge -Wl,-rpath,/opt/openrobots/lib -lhpp-fcl -loctomap -loctomath
非常感谢!
1条答案
按热度按时间abithluo1#
来自匹诺曹网站pinocchio:
因此,请尝试设置名为CMAKE_PREFIX_PATH的CMake环境变量或在cmake调用期间使用-D标志:
它指定FIND命令将使用的路径