Bitbake не заполняет таким образом символьные ссылки на общие библиотеки
В моем слое Yocto у меня есть такой рецепт bitbake для библиотек Qt Gstreamer:
SUMMARY = "QtGStreamer libraries for Qt5"
DESCRIPTION = "QtGStreamer is a set of libraries and plugins providing C++ bindings for GStreamer with a Qt-style API plus some helper classes for integrating GStreamer better in Qt applications."
SECTION = "multimedia"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
SRC_URI[md5sum] = "fd794045a828c184acc1794b08a463fd"
SRC_URI[sha256sum] = "9f3b492b74cad9be918e4c4db96df48dab9c012f2ae5667f438b64a4d92e8fd4"
SRC_URI = "http://gstreamer.freedesktop.org/src/qt-gstreamer/${PN}-${PV}.tar.xz"
RDEPENDS_${PN} = "libgstpbutils-1.0
gstreamer1.0
qtdeclarative
glib-2.0
libgstvideo-1.0
libgstapp-1.0
libgstaudio-1.0
qtbase
"
inherit cmake_qt5
export EXTRA_OECMAKE = "-DQT_VERSION=5
-DHW_PLATFORM=imx6
-DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${STAGING_DIR_NATIVE}/usr/bin/qt5/
-DUSE_QT_PLUGIN_DIR=OFF
-DCMAKE_SKIP_INSTALL_RPATH=YES
-DCMAKE_SKIP_RPATH=YES
-DCMAKE_INSTALL_PREFIX="/"
"
FILES_${PN} += "
${libdir}/gstreamer-1.0/*
"
INSANE_SKIP_qt-gstreamer = "installed-vs-shipped"
EXTRA_OECONF += "--disable-rpath"
В результате этого рецепта во временном каталоге сборки у меня есть 3 файла для каждой общей библиотеки, созданной - одна фактическая библиотека и две символьные ссылки, такие как:
libQt5GStreamer-1.0.so -> libQt5GStreamer-1.0.so.0
libQt5GStreamer-1.0.so.0 -> libQt5GStreamer-1.0.so.1.2.0
libQt5GStreamer-1.0.so.1.2.0
Теперь я задаюсь вопросом, почему в пакете ${PN} у меня есть файлы libQt5GStreamer-1.0.so.0
и libQt5GStreamer-1.0.so.1.2.0
, но нет libQt5GStreamer-1.0.so
?
С другой стороны, у меня есть этот файл, включенный в пакет ${PN}-dev
.
Я попытался скопировать этот файл в пакет ${PN} с помощью FILES_${PN}
, но затем я ОК получаю ошибку, что я не могу так симлинки в не-dev пакет.
Мое приложение Qt для воспроизведения видео зависит от этих файлов *.so, поэтому мне нужно иметь их в моих целевых rootfs.
Как добавить эти файлы к изображению?
1 ответ:
Мое приложение Qt для воспроизведения видео зависит от этих *. so
Это, вероятно, проблема, которую вы должны решить:. so не должен быть необходим приложению во время выполнения. Способ установки библиотек и символьных ссылок Yocto является стандартным: вы найдете этот же раздел в Ubuntu и других дистрибутивах.
Вы можете отключить предупреждение QA с помощью
INSANE_SKIP_${PN} += "dev-so"
, но это не изменит тот факт, что ошибка, вероятно, находится в приложении.В качестве альтернативы вы могли бы, конечно, сделайте так, чтобы ваше приложение зависело от пакета-dev.