Basile Starynkevitch Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 (modifié) Bonjour, Je connais bien Linux (en ligne de commande) et GCC (auquel je contribue, notamment via MELT - voir http://gcc-melt.org) et les binutils. Je cherche à cross-compiler un hello world en C ou C++ (que je lancerais dans l'émulateur de terminal Android) sans utiliser de NDK ou de SDK, c'est à dire le plus manuellement possible, sous Linux (Debian/Sid/x86-64). Le but de l'exercice est surtout d'arriver à configurer et compiler moi même ce qui est necessaire (je pense à binutils, GCC, et probablement http://musl-libc.org/ comme libc). Par contre, je connais peu Android (ma tablette est une Nexus 7, rootée, Android 4.4.2). Savez vous exactement quelle plateforme cible (au sens de binutils et gcc et de leur configure) convient pour une tablette Nexus7? Je pense (mais ne suis pas sûr) que la tablette est une cible arm-linux-gnueabi qui est primaire pour GCC 4.9 http://gcc.gnu.org/gcc-4.9/criteria.html (c'est le trunk de GCC que je veux configurer comme compilateur croisé ciblant ma tablette). Je sêche un peu sur des choses aussi basiques que le transfert de fichier système de la tablette vers mon Linux. Une commande aussi simple que file /bin/ls ne fonctionne pas dans l'émulateur de terminal Androidale. J'arrive evidemment à utiliser MTP pour voir un système de fichier de la tablette sous Linux. Cordialement, Basile Starynkevitch PS. Le but est juste de savoir configurer une chaine de développement croisée, pour préparer un exposé sur les greffons de GCC.(au Linux Foundation Collaboration Summit); ce n'est pas de faire une véritable "application Android"; voir cette question similaire sur Stack Overflow. Modifié 16 mars 2014 par Basile Starynkevitch Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
indian65 Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 Je pense que tu auras plus de réponses dans la section dev, je transfère Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smartties Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 (modifié) Salut Basile, Si tu veux compiler cela dépend en effet de l'architecture de ton téléphone : arm-linux-androideabi-4.4.3 (ARM) x86-4.4.3 (x86) mipsel-linux-android-4.4.3 (MIPS) Je ne sais pas si le terminal Android te permettra d’exécuter ton Hello World, à moins d’être Root. Pour transférer des fichiers de ton téléphone à ton ordinateur tu peux passer par l'interface graphique (avec le protocole MTP), ou utiliser ADB, avec la commande : pull <remote> <local> Copies a specified file from an emulator/device instance to your development computer. Cordialement, Martin JULES Modifié 16 mars 2014 par smartties 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lannig Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 Pour compiler du code applicatif C/C++ sous Android il faut utiliser le NDK (Native Development Kit). Il n'y a pas de standard output pour un programme s'exécutant dans le contexte utilisateur sous Android, donc un simple printf("Hello, world\n"); ne peut pas suffire. Exemple ici (en C++) : http://taylorpeer.com/hello-world-cpp-android-ndk/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smartties Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 Le ndk est obligatoire si on veut faire une application. Parcontre rien n’empêche l’exécution d'un "binarie" dans un terminal ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lannig Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 Ah oui bien sûr, dans un shell ouvert dans un émulateur de terminal (ou par adb shell) c'est OK. Mais bon, l'utilité... ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smartties Posté(e) 16 mars 2014 Share Posté(e) 16 mars 2014 Aucune utilité en effet ^_^ . Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.