- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 catkin 构建这个 ROS 包 https://github.com/toddhester/rl-texplore-ros-pkg但它无法构建“rl_experiment”并出现以下错误:
/usr/bin/ld: cannot find -lagentlib
/usr/bin/ld: cannot find -lenvlib
collect2: error: ld returned 1 exit status
我正在使用 ROS Kinetic。共享库确实存在于文件夹/texplore/devel/.private/rl_env/lib/和/texplore/devel/.private/rl_agent/lib/中,符号链接(symbolic link)位于/texplore/devel/lib/
我尝试了以下方法:
(1) 导出/texplore/devel/lib/到 LD_LIBRARY_PATH
(2) 添加符号链接(symbolic link)到/texplore/src/rl_experiment/src 中的库
(3) 添加库路径到target_link_libraries
target_link_libraries(experiment agentlib envlib ${catkin_LIBRARIES}
"/media/usr/texplore/devel/lib/libagentlib.so"
"/media/usr/texplore/devel/lib/libenvlib.so")
(4) 设置链接器的搜索路径
SET(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,/media/usr/texplore/devel/lib/")
它没有用。最后,我将符号链接(symbolic link)添加到/usr/local/lib 并且它起作用了。但我不想要此文件夹中的符号链接(symbolic link)。
所以链接器根本没有搜索构建树。我的问题是,为什么catkin没有在catkin_LIBRARIES中添加链接器路径?我以前构建过 ROS 包,但无法理解为什么这个特定包不起作用。
最佳答案
我遇到了同样的问题。我根据this post做了以下修改关于 ROS Answers 和通用 CMakeLists.txt 文件中 catkin_packages 宏的以下注释:
## LIBRARIES: libraries you create in this project that dependent projects also need
我做了一些事情来解决这个问题......
LIBRARIES agentlib
到 rl_agent/CMakeLists.txt
文件中的 catkin_packages
宏。这使得 agentlib
库稍后可用于 rl_experiment
。LIBRARIES envlib
添加到 rl_env/CMakeLists.txt
文件中的 catkin_packages
宏。这使得 envlib
库稍后可用于 rl_experiment
。rl_experiment/CMakeLists.txt
文件的 target_link_libraries
宏中删除了 agentlib
和 envlib
。这些都不是必需的。rl_agent
和 rl_env
包列在 rl_experiment/CMakeLists.txt
的 find_package
宏中。 ...然后一切都成功编译。
添加片段以进一步说明...
...
## Declare a cpp library
# add_library(rgbd_tools
# src/${PROJECT_NAME}/
# )
add_library(agentlib
src/Agent/DiscretizationAgent.cc
src/Agent/QLearner.cc
...
src/newmat/newmatrm.cc
src/newmat/newmat9.cc
)
## Declare a cpp executable
# add_executable(rgbd_tools_node src/rgbd_tools_node.cpp)
...
...
###################################
## catkin specific configuration ##
###################################
...
catkin_package(
INCLUDE_DIRS include
LIBRARIES envlib
# CATKIN_DEPENDS roscpp rospy std_msgs
CATKIN_DEPENDS message_runtime
# DEPENDS system_lib
)
...
...
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
rl_common
rl_env
rl_agent
)
## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
...
## Declare a cpp executable
# add_executable(rgbd_tools_node src/rgbd_tools_node.cpp)
add_executable(experiment src/rl.cc)
# target_link_libraries(experiment agentlib envlib ${catkin_LIBRARIES})
target_link_libraries(experiment ${catkin_LIBRARIES})
#add_executable(image_converter src/image_converter.cpp)
...
关于c++ - ROS catkin build - 找不到共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54271001/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!