web-dev-qa-db-fra.com

snapcraft cross compiler

Je suis sur une machine x86_64-linux-gnu et j'essaie de créer un accrochage à partir de la source pour arm-linux-gnueabihf (Raspberry Pi3) à l'aide d'Autotools.

Je parviens à créer le composant logiciel enfichable, mais après le téléchargement dans le magasin, il indique toujours que l'architecture prise en charge est la suivante:

Architectures prises en charge AMD64

Mon snapcraft.yaml ressemble à ceci:

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/

Lors de l'exécution de snapcraft, l'erreur suivante apparaît:

Priming test-hellocsnap 

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

Est-ce que quelqu'un sait comment préparer un cliché de source sur un AMD64 pour Raspberry Pi?

3
V Bota

Je suis sûr que j'ai lu quelque part que snapcraft n'offre pas encore l'option de compilation croisée du code pour différentes architectures.

Je voulais faire la même chose mais je ne pouvais pas comprendre comment utiliser Autotools pour le faire. Au lieu de cela, j'ai utilisé Eclipse pour construire mon projet et je l'ai configuré pour construire pour armhf. Plus tard, j'ai placé l'exécutable et tous les éléments nécessaires au fonctionnement de mon application dans un dossier et utilisé plugin: dump à la place de plugin: autotools. Vous devrez ajouter architectures: [armhf] si vous envisagez de l'ajouter à la boutique Ubuntu. J'ai reçu le même message que vous, mais j'avais déjà testé le code sans claquer et je savais que j'avais emballé tout ce dont j'avais besoin, alors je l'ai simplement ignoré.

Alternativement, vous pouvez jeter un oeil à Launchpad qui pourrait vous aider à le construire pour une variété d'environnements.

2
Jasko

J'ai exécuté: snapcraft build --target-Arch = armhf

Et tout s'est déroulé sans erreur. Cependant, il n'a pas créé un package hello_2.10_armhf.snap comme prévu.

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
0
Jack Nimble