Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/04/2007, à 22:12

fireares

[Resolu] <ada>Lançer mon fichier

Tout d'habord bonjour, après une longue hésitation j'ai finalement décidé d'installer "Kubuntu"; j'étais sur windows au par avant et je penne à m'adapter ¬¬

My problème: Après avoir découvert par hasard Emacs (^^), j'ai décidé de tester un petit programme tout simple en langage ada ayant pour seule but d'afficher "Que voulez vous tapez? " suivit d'un Get(maVariable)... La compilation c'est très bien dérouler, et je suis d'ailleur sur que mon programe fonctionne sur Windows, mais sous Kubuntu pas moyen de lancer mon .exe!!!

Donc: Je souhaiterais avoir votre avis et même (si possible) une solution...

PS: Je suppose qu'une sorte de package est nécessaire ¬¬

Dernière modification par fireares (Le 26/04/2007, à 12:40)

Hors ligne

#2 Le 25/04/2007, à 23:11

slapierre

Re : [Resolu] <ada>Lançer mon fichier

La notion d'exécutable de la forme fichier.exe n'existe pas sous linux! Pour un fichier binaire exécutable ll faut "entrer" dans le fichier. Les fichiers exécutables sont listés (commande ls) en vert dans le terminal. Pour l'exécuter le fichier out :

   $ ./out

Je ne connais pas le langage ADA, mais voici un petit bout de code en C ;

#include <stdio.h>
int main (void)
{
   printf ("allo");
   return 0;
}

> compiler : $ cc -o out main.c
> exécuter : $ ./out

Simon


"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton

Hors ligne

#3 Le 26/04/2007, à 07:00

fireares

Re : [Resolu] <ada>Lançer mon fichier

Merci beaucoup il me suffit donc de taper un "./MonProgramme" pour pouvoir le lancer via le terminal!

PS: Je débute aussi paralellement le langage C, sous linux pour compiler un .c on doit utiler la commande "cc -o"?

Dernière modification par fireares (Le 26/04/2007, à 07:00)

Hors ligne

#4 Le 26/04/2007, à 08:47

slapierre

Re : [Resolu] <ada>Lançer mon fichier

Tout à fait! Le terminal est un outil puissant et il n'y a seulement quelques commandes de base à maîtriser, le reste du vocabulaire s'acquiert sur le tas. Pour avoir plus d'infos sur une commande, tu la précèdes par man, pour "manuel". Pour faire des tâches administratives, précède la commande par sudo. En vrac :

> cd, clear, cp, df (df -h), exit, free (free -m), ls (ls -l), mkdir, mv, pwd, reboot (ici c'est sudo reboot), rm, rmdir (ou alors rm -r), slocate

En prime : configure ta session en console en éditant le fichier .bashrc situé dans ton répertoire perso. Aussi, pour accéder rapidement à ton home, fais simplement cd

---
$ cc -o out main.c

La façon la plus simple de compiler un programme est la commande cc (ou gcc),  où la switch -o permet de donner un nom à l'exécutable, si tu as besoin de math.h,  ajoute la librairie :

   $ cc -o out main.c -lm

Comme ça devient compliqué de gérer les dépendances entre les fichiers et les librairies, le mieux est de créer un Makefile et d'utiliser la commande make. Structure minimale d'un fichier Makefile (pour compiler il faut faire : $ make out) :

# Lier les fichiers objets : la cible est 'out', appel des librairies 'gsl' et 'math'
    out : main.o
        cc -o out -lgsl -lgslcblas -lm main.o

# Compiler le fichier 'main.c' : créer le fichier objet 'main.o'

    main.o : main.c
        cc -c main.c

    clean : rm *.o *~*

> Manuel de make en français :
http://graal.ens-lyon.fr/~fvivien/Enseignement/PPP-2001-2002/TP03-GNUmake/index.html

Le mieux est peut-être de commencer avec un environnement de développement intégré (IDE) qui va te générer un Makefile et résoudre les dépendance, je te suggères Anjuta.

Pour le C, installe, au moyen de Synaptic, les paquets freebsd-manpages et manpages-dev, ce qui te donnes accès à plus de pages de manuel (manpages), dont la librairie standard. Par exemple : $ man strcpy


Simon

Dernière modification par slapierre (Le 26/04/2007, à 08:47)


"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton

Hors ligne

#5 Le 26/04/2007, à 12:39

fireares

Re : [Resolu] <ada>Lançer mon fichier

Wow...
Ca fait beaucoup d'information d'un coups O_o

Merci bien "Simon" j'ai tout ce qu'il me faut pour commencer le C/C++, tanks!

Hors ligne

#6 Le 26/04/2007, à 18:24

slapierre

Re : [Resolu] <ada>Lançer mon fichier

Petit éclaircissement : pour le Makefile, il faut faire make out car la cible est définie comme étant out, il y a aussi la cible clean, qui efface les fichiers objets et les copies de sauvegarde automatiques (fichiers.c~). donc tu fais make clean.

Ceci permet de faire un seul fichier pour compiler plusieurs sources, pour des petits exercices, tu fais un Makefile qui compile chaque programmes (make exo1, make exo2, ...). Généralement les gros Makefile ont une cible all (make all) qui utilise les objets générés par les "petites" cibles. En vérité les gros Makefile sont générés autoconf, automake et cie (c'est ce que fait une application comme Anjuta).

A cet effet, si tu utilises Anjuta, installe les paquets (avec Synaptic) suivants, Anjuta en a besoin pour compiler, mais il ne les installe pas, mon hypothèse est que c'est  pour s'assurer d'avoir la meilleure version pour chaque système ... :

     automake
     autoconf
     libtool

Si ce n'est déjà fait, installe le paquet build-essential


Simon

Dernière modification par slapierre (Le 26/04/2007, à 18:27)


"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton

Hors ligne