Что означает эта странная ошибка "/usr/bin/ld: не может найти -lxaw_library -notfound"?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Что означает эта странная ошибка "/usr/bin/ld: не может найти -lxaw_library -notfound"?

Сообщение Anonymous »

Я создал плагин ROS2 RVIZ в C ++, который мне нужно компилировать в библиотеку () с помощью Cmake. У меня уже есть работающая cmakelists.txt (см. Ниже), которая создает библиотеку static (); Мне нужно, чтобы это было поделиться, хотя. < /P>

Однако, когда я добавляю общий < /code> ключевое слово в макрос add_library < /code> (прокомментированный в коде ниже), он выбрасывает эту странную ошибку: < /p>

Код: Выделить всё

/usr/bin/ld: cannot find -lXAW_LIBRARY-NOTFOUND
Теперь я посмотрел на множество вопросов "/usr/bin/ld: не могу найти [некоторые библиотеки] " здесь (как это), но моя ошибка кажется более странной, поскольку она, кажется, содержит ошибку ("

Код: Выделить всё

-lXAW_LIBRARY-NOTFOUND
") в ошибке (/usr/bin/ld: нельзя найти ...). Я имею в виду, почему он даже ищет библиотеку под названием Library_notfound?? />

Код: Выделить всё

project(traffic_sign_delegation_manager)

set(CMAKE_CXX_STANDARD 17)

if(NOT WIN32)
add_definitions(-fPIC)
endif()

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic -Wno-deprecated-declarations)
endif()

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rviz_common REQUIRED)
find_package(std_msgs REQUIRED)
find_package(rosidl_default_generators REQUIRED)
find_package(rosidl_generator_cpp)
find_package(pluginlib REQUIRED)

find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5 REQUIRED COMPONENTS Widgets)

set(msg_files
"msg/TrafficSignList.msg"
"msg/TrafficSign.msg"
"msg/TrafficSignSetList.msg"
"msg/TrafficSignSet.msg"
"msg/TrafficSignSetStatus.msg"
"msg/TrafficSignsManaged.msg"
"msg/AccLever2.msg"
"msg/VehicleOdometry.msg"
)

rosidl_generate_interfaces(${PROJECT_NAME}
${msg_files}
DEPENDENCIES std_msgs
)

link_directories(${ament_cmake_LIBRARY_DIRS})

add_definitions(-DQT_NO_KEYWORDS)

qt5_wrap_ui(QT_UI_FILES ui/traffic_sign_delegation_manager_panel.ui)
qt5_wrap_ui(QT_UI_FILES ui/traffic_sign_list_item.ui)

qt5_add_resources(QT_QRC_FILES ui/traffic_sign_delegation_manager.qrc)

set_property(SOURCE traffic_sign_delegation_manager_panel.h PROPERTY SKIP_AUTOMOC ON)
set_property(SOURCE draw_area.h PROPERTY SKIP_AUTOMOC ON)
set_property(SOURCE adv_interaction_groupbox.h PROPERTY SKIP_AUTOMOC ON)
set_property(SOURCE traffic_sign_delegation_manager_display.h PROPERTY SKIP_AUTOMOC ON)

add_library(delegator_lib   # SHARED # 

 Обратите внимание: этот вопрос не о ROS; Я не мастер Cmake, так что, вероятно, я просто делаю что-то ужасно неправильное в Cmake ... Я уже задал более широкую версию этого вопроса на ответах. ROS 
, но, похоже, это слишком специфична для Cmake или что-то в этом роде. Во всяком случае, я не получил ответа там. (Приведенный выше код не является MWE, извините; я мог бы создать один, если это необходимо, но потребует ROS2 для компиляции ...)

Подробнее здесь: https://stackoverflow.com/questions/545 ... nd-error-m
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»