Как добавить статическую библиотеку в пакет Yocto SDK - PullRequest
0 голосов
/ 20 марта 2019

У меня есть файлы .a и .h, которые нужно добавить в установщик SDK. Заголовочный файл правильно помещен в каталог {includeir} aka / usr / include

Однако статический файл lib, который будет добавлен в {libdir}, по какой-то причине не копируется в usr / lib /. Я не получаю никаких сообщений об ошибках или предупреждений при сборке пакета SDK.

Используемый рецепт:

#
# This file was derived from the 'Hello World!' example recipe in the
# Yocto Project Development Manual.
#

SUMMARY = "HostSw and libraries for abc"
SECTION = "abc-drv"
LICENSE = "CLOSED"

ABC_ROOT = "${HOME}/abc/def"
ABC_HOSTSW_DIR = "${ABC_ROOT}/hostSw"
ABC_UTILS_DIR = "${ABC_ROOT}/cliUtilities"

inherit externalsrc
EXTERNALSRC = "${ABC_ROOT}"


do_compile() {
  make clean -C ${ABC_HOSTSW_DIR}
  make -C ${ABC_HOSTSW_DIR}

  make clean -C ${ABC_UTILS_DIR}
  make -C ${ABC_UTILS_DIR}
}

##################################################################################################

APPLI_PATH            := "${ABC_ROOT}/hostSw"
APPLI_BIN_PATH        := "${APPLI_PATH}/bin/"
APPLI_TARGET_PATH     := "${base_prefix}/home/root/"
APPLI_NAME            := "example-app"
UTILS_BIN_PATH        := "${ABC_UTILS_DIR}/bin"
UTILS_TARGET_PATH     := "${APPLI_TARGET_PATH}"

do_install() {
   install -d ${D}${APPLI_TARGET_PATH}
   install -m 0550 ${APPLI_BIN_PATH}/${APPLI_NAME} ${D}${APPLI_TARGET_PATH}

   install -d ${D}${libdir}
   install -m 0644 ${APPLI_BIN_PATH}/abc.a ${D}/${libdir}

   install -d ${D}${includedir}
   install -m 0644 ${APPLI_PATH}/inc/abc.h ${D}/${includedir}
}

FILES_${PN} = "\
${APPLI_TARGET_PATH} \
"

Пожалуйста, не обращайте внимания на externalsrc или любые другие не связанные с проблемами особенности, рецепт работает так, как мне нужно, за исключением статической библиотеки, не вставляемой в SDK.

Почему файл .a не обрабатывается так же, как файл заголовка, и как нужно было изменить рецепт, чтобы статический lib был включен в пакет SDK?

При перечислении пакета я получаю:

oe-pkgdata-util list-pkg-files -p def-abc-xyz
    def-abc-xyz-dbg:
    def-abc-xyz-staticdev:
        /usr/lib/libabc.a
    def-abc-xyz-dev:
        /usr/include/abc.h
    def-abc-xyz:
        [snip]
...