Попытайтесь добавить библиотеку ссылок "/usr/lib/x86_64-linux-gnu/libconsole_bridge.so" для назначения "listener", который не встроен в этот каталог - PullRequest
0 голосов
/ 15 ноября 2018

Я получил следующую ошибку:

CMake Error at custom_msg/CMakeLists.txt:26 (target_link_libraries):
Attempt to add link library
"/usr/lib/x86_64-linux-gnu/libconsole_bridge.so" to target "listener" which
is not built in this directory.

CMakeList.txt

# %Tag(FULLTEXT)%
cmake_minimum_required(VERSION 2.8.3)
project(custom_msg)

## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation)

## Declare ROS messages and services
add_message_files(FILES Num.msg PoseVel.msg)
add_service_files(FILES AddTwoInts.srv)

## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)

## Declare a catkin package
catkin_package(CATKIN_DEPENDS message_runtime std_msgs)

## Build talker and listener
include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker beginner_tutorials_generate_messages_cpp)

add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener beginner_turorials_generate_messages_cpp)

# %EndTag(FULLTEXT)%

Я создал два пакета. Первый пакет называется beginner_tutorials, а второй - custom_msg. Beginner_tutorials был разработан, как описано в следующей ссылке: Написание Издатель / Подписчик с C ++

После этого я создал новый пакет custom_msg. Я скопировал CMakeList.txt и исходный код. Я создал новое сообщение с именем PoseVel.msg и изменил код в Talker.cpp. В package.xml я включил message_generation и message_runtime.

Моя цель - использовать собственное сообщение. Я не понимаю, почему новый пакет выдает ошибку, а старый нет. В чем моя ошибка?

Спасибо за помощь.

1 Ответ

0 голосов
/ 15 ноября 2018

Именованная цель должна быть создана add_library () в проекте или в виде библиотеки IMPORTED.Если он создается в рамках проекта, в систему сборки автоматически добавляется зависимость порядка следования, чтобы убедиться, что указанная цель библиотеки обновлена ​​до ссылок.

С здесь

...