无法为目标" cv_bridge-utest"指定链接库。 ROS编译错误

时间:2016-07-05 15:36:37

标签: opencv ros

我正在尝试编译涉及catkin_make的ROS项目。该项目涉及 - 其中包括将opencv矩阵转换为名为cv_bridge的ros矩阵的工具。但是,在尝试编译我的catkin_ws时,我收到以下错误:

CMake Error at cv_bridge/test/CMakeLists.txt:7 (target_link_libraries):
  Cannot specify link libraries for target "cv_bridge-utest" which is not
  built by this project.

有谁知道这个错误?我对ROS很陌生,所以我不确定如何告诉ROS编译整个catkin_ws/src目录。在后一个文件夹中,应该存在所有必需的文件夹。还有catkin_ws/src/cv_bridge但是它可能尝试以错误的顺序编译文件夹...

1 个答案:

答案 0 :(得分:0)

我不知道你在CMakeLists中写了什么。假设错误就在那里,你可以像这样使用CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.3)
project(your_project)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  cv_bridge
)

find_package(OpenCV REQUIRED)

###########
## Build ##
###########

catkin_package()

include_directories(
  ${catkin_INCLUDE_DIRS}
  ${OpenCV_INCLUDE_DIRS}
  include
)


add_executable(executable src/your_file.cpp)
target_link_libraries(executable ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})

在package.xml中添加以下行:

  <build_depend>opencv2</build_depend>
  <build_depend>cv_bridge</build_depend>

  <run_depend>opencv2</run_depend>
  <run_depend>cv_bridge</run_depend>

要编译文件夹,您只需转到catkin目录并输入:catkin_make 如果您以正确的方式构建了工作区,则应该编译而不会出错。