Установите общую библиотеку с помощью оснастки

У меня есть проект, который построен CMake и я хочу пакет с щелчок. Проект включает в себя исполняемый файл и библиотеку (давайте позвоним Это и либа).

мой snapcraft.yaml файл выглядит так:

name: a
version: "0.9"summary: xyz
description: xyz
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: strict

apps:
a:
command: a

parts:
a:
plugin: cmake
source: ./a.zip
filesets:
manpages: [ usr/share/man ]

В CMake, зависит от либа (по факту это просто «обертка» либа для использования в скриптах bash). Когда я собираю проект с помощью Snapcraft и устанавливаю этот пакет (установка как —опасно), бегущая команда с терминала работает нормально. Но когда я пытаюсь построить приложение в зависимости от либа (с помощью НКУ), у меня проблема, которая заканчивается/ usr / bin / x86_64-linux-gnu-ld: не могу найти -la«Сообщение об ошибке. Прежде всего, я должен включить заголовки, даже если они были установлены по умолчанию в системе включают использование каталога-I / оснастка / A / тока …«(Я понимаю, что оснастка устанавливает файлы в /щелчок/ каталог, но, возможно, я просто делаю что-то не так с snapcraft.yaml). Тогда я получаю сообщение от л.д. выше.

Я абсолютно новый в пакетах оснастки, это мой первый проект. Есть ли возможность установить либа как системная библиотека (видимая при сборке с gcc, используя include из системного каталога по умолчанию)?

Может быть, это поможет расколоть а также либа в разные пакеты с зависит от сборки либа, но я не уверен, что это поможет с проблемой установки общей библиотеки.

Есть ли у вас опыт с этой проблемой? Любой совет? Спасибо за ответы.

0

Решение

Боюсь, снимки не очень хорошо подходят для того, что вы пытаетесь сделать. Они отлично подходят для приложений конечного пользователя (например, обертка, которая делает lib полезной в скриптах), но по своей конструкции они изолированы от остальной части системы. В них можно отправлять библиотеки для использования из других приложений, но эти приложения должны будут искать библиотеки и заголовки где-то в /snap/<snap name>/current/, который определенно не находится на пути поиска по умолчанию.

0

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

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

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