Генерация пакетов Yocto без изменения распределения по целям (ARM & x86) - PullRequest
1 голос
/ 04 февраля 2020

В настоящее время я разрабатываю приложение C / C ++ со следующими характеристиками:

  • Несколько целевых платформ - ARM (Raspbian) и производитель Модифицированный дистрибутив x86
  • CMake используется для компиляции приложения C / C ++
  • Кросс-компиляция для ARM и настроенного дистрибутива x86 => с CMake (и наборы инструментов для кросс-компиляции)
  • Несколько зависимостей (другие репозитории github), которые кросс-компилируются отдельно (согласно README github). На них есть ссылки в CMake проекта. CMake решает, использовать ли библиотеки ARM или x86.
  • Для развертывания Я копирую перекрестно скомпилированные библиотеки зависимостей в / usr / lib на цели. После этого кросс-компилированное приложение может быть запущено на цели.

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

Моя цель - получить файл rpm / deb, который можно легко установить на целевые системы

Через несколько часов исследования, я обнаружил, что с помощью кросс-компиляции Yocto можно легче управлять. Кроме того, можно создавать файлы deb / rpm / ..., которые можно устанавливать на цели.

В любом случае, насколько я понял, этот файл deb / rpm / ... можно установить только на дистрибутиве / образе yocto, который использовался для компиляции => Другими словами, мне нужно было бы написать sh совершенно новый дистрибутив для наших целей (raspberry & x86). К сожалению, это не вариант для меня (из-за пользовательской цели x86).

Вопрос 1: Правильно ли, что я должен заменить дистрибутивы на целях, чтобы установить созданные пакеты?

Вопрос 2: Есть ли способ создания кросс-скомпилированных файлов deb, которые можно установить в существующих дистрибутивах? Если да, что мне нужно сделать, чтобы добиться этого?

Я предполагаю, что моя текущая стратегия сборки не самая лучшая. Если у вас есть идеи, как сделать это лучше, не стесняйтесь, дайте мне знать.

Спасибо, Кристоф

...