Неопределенная ссылка на ‘libvlc_new & quot; но правильно ли связаны?

Я хочу использовать библиотеку VLC в ROS-проекте с использованием C ++. Я использую QT Creator в качестве редактора кода.

Я пытался следовать следующему руководству, чтобы реализовать простое воспроизведение mp3-файла: Простая программа на C для воспроизведения mp3 с использованием libvlc

Since then I'm getting the following exceptions:
undefined reference to `libvlc_new'
undefined reference to `libvlc_media_new_path'
undefined reference to `libvlc_media_player_new_from_media'
undefined reference to `libvlc_media_release'
undefined reference to `libvlc_media_player_play'
undefined reference to `libvlc_media_player_stop'
undefined reference to `libvlc_media_player_release'
undefined reference to `libvlc_release'
collect2: ld returned 1 exit status
make[2]: *** [../bin/my_face_tracker_demo] Error 1
make[1]: *** [CMakeFiles/my_face_tracker_demo.dir/all] Error 2
make: *** [all] Error 2
The process "/usr/bin/make" exited with code 2.
Error while building project my_qbo_interaction (target: Desktop)
When executing build step 'Make'

Конечно я добавил #include "vlc/vlc.h" в файл. Кроме того, я следовал инструкциям на http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries чтобы убедиться, что я добавляю ссылки для компоновщика. Вот что я добавил в файл cmakelist.txt:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package(LIBVLC REQUIRED)
include_directories(${LIBVLC_INCLUDE_DIRS})
set(LIBS ${LIBS} ${LIBVLC_LIBRARIES})

make может скомпилировать файл. Он также может найти библиотеки LIBVLC. Вот часть вывода из make:

— Найденный путь к libVLC include-dir: / usr / include
— Найден путь к библиотеке LibVLC: /usr/lib/libvlc.so
— Найден путь к библиотеке LibVLCcore: /usr/lib/libvlccore.so
— Найдена версия LibVLC: 1.1.12 (искали: 0.0)
— Настройка выполнена
— Генерация готового CMake Предупреждение. Заданные вручную переменные не использовались проектом:

CMAKE_TOOLCHAIN_FILE

Но я все еще получаю вышеуказанные сообщения об ошибках … Кто-нибудь может мне помочь?

0

Решение

Похоже, что библиотеки VLC были правильно найдены, но вам нужно связать их с исполняемым файлом.

Вы делаете это через target_link_libraries команда. Например:

set(LIBS ${LIBS} ${LIBVLC_LIBRARIES})
add_executable(MyExe ${TheSources})
target_link_libraries(MyExe ${LIBS})
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]