Мгновенный кросс-компиляция
Я на машине 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