Мгновенный кросс-компиляция

Я на машине x86_64-linux-gnu и пытаюсь собрать оснастку из источника для arm-linux-gnueabihf (Raspberry Pi3) с помощью автоинструментов.

Мне удается создать оснастку, но после загрузки в магазин всегда говорится, что поддерживаемая архитектура:

Поддерживаемые архитектуры amd64

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

name: hellocsnap
version: '1.17'
summary:  Hello World snap written in C 
description: This snap says hello and adds 2 numbers.
grade: stable
confinement: strict
apps:
  hello:
    command: hellocsnap
parts:
  test-hellocsnap:
   plugin: autotools
   configflags: 
       - --build=x86_64-linux-gnu
       - --host=arm-linux-gnueabihf
source: source/

При беге snapcraft Я получаю следующую ошибку:

Priming test-hellocsnap 

Unable to determine library dependencies for b' /home/..../prime/bin/hellocsnap'

Кто-нибудь знает, как упаковать оснастку из источника на amd64 для Raspberry Pi?

2 ответа

Решение

Я почти уверен, что где-то читал, что Snapcraft еще не предоставляет возможность кросс-компиляции кода для разных архитектур.

Я хотел сделать то же самое, но не мог понять, как использовать для этого автоинструменты. Вместо этого я использовал eclipse для сборки своего проекта и настроил его для сборки для armhf. Позже я поместил исполняемый файл и все необходимое для работы моего приложения в одну папку и использовал plugin: dump вместо plugin: autotools, Вам нужно будет добавить architectures: [armhf] если вы планируете добавить его в магазин Ubuntu. Я получил то же сообщение, что и вы, но я уже тестировал код без привязки и знал, что упаковал все, что мне нужно, поэтому просто проигнорировал его.

В качестве альтернативы вы можете взглянуть на Launchpad, который может помочь вам создать ее для различных сред.

Я запустил: snapcraft build --target-arch=armhf

И все прошло без ошибок. Однако он не создал пакет hello_2.10_armhf.snap, как ожидалось.

snapcraft.yaml:

name: hello
version: '2.10'
summary: GNU Hello, the "hello world" snap
description: |
  GNU hello prints a friendly greeting.
grade: devel
confinement: devmode
parts:
  gnu-hello:
    source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
    plugin: autotools
Другие вопросы по тегам