IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

Utilisation de packages externes


Sujet :

Ada

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut Utilisation de packages externes
    Bonjour a tous

    Je dois faire actuellement pour mon taf un portage d'un projet de ADA83 sur ADA95. Je developpe sur SUN SOLARIS et utilise GNAT 3.15
    L'architecture de ce projet est la suivante :
    - 1 repertoire contenant les sources d'une 1ere appli
    - 1 repertoire contenant les sources d'une 2ème appli
    - 1 repertoire "utilitaires" contenant des packages utilisés par les 2 applis

    Mon pb est que lorsque je compile, mon compilateur ne trouve pas les sources utilitaires car elles ne sont pas dans le meme dossier.
    De plus meme si je compile ses sources utilitaires à part, comment utiliser dans mon code source ces packages ?? car un "with nom_package" ne marche pas puique le package n'est pas dans le meme repertoire que le source

    Me dites pas qu'en ADA on est obligé d'avoir tous les fichiers dans le meme repertoire....

    Merci d'avance pour votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Points : 139
    Points
    139
    Par défaut
    Bonjour,

    En fait, le projet Gps (.gpr) que tu utilises ne va pas chercher les sources dans ton répetoire utilitaires, si tu ne lui dis pas .

    2 méthodes pour lui rajouter ce répertoire dans la liste des réperoires à parcourir :
    - dans le menu Project -> Edit Project properties, tu as une enêtre qui s'ouvre avec une multitude d'onglets dont Source dirs. C'est la que tu ajoutes le répertoire manquant.
    - à la bourrin , tu édites ce fichier .gpr et tu modifies la ligne suivante :

    for Source_Dirs use (".", "le répertoire où se trouve tes utilitaires");

    Voilà, j'espère que celà t'aidera.

    Oups , je n'ai pas pensé que tu pouvais ne pas utiliser Gps . Vérifie dans ta ligne de commande ou ton makefile si tu lui as donné le chemin de tes sources d'utilitaires.

    En tout cas, un "with" ne signifie pas que le compilateur sait où sont tes sources (à part les bibliothèques standard bien sur).

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut
    Non j'utilise pas GPS donc je n'ai pas de projet .grp

    Je suis tjrs bloqué sur ce pb. Personne n'a idée ??? lol

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Points : 139
    Points
    139
    Par défaut
    Et ton makefile ou ta ligne de commandes contiennent-elles les répertoires de tes sources "utilitaires" ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut
    C'est bon j'arrive a compiler mes packages "utilitaires" en pensant le chemin du repertoire utilitaires dans mon makefile

    Par contre, comment je fais pour les utiliser dans les sources de mes 2 applis ???

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Points : 139
    Points
    139
    Par défaut
    Si tu veux utiliser un "utilitaire" dans un source de une de tes deux applis, un "with" suffit pour avoir la visibilité. Par contre, tu devras suffixer par le nom du paquetage "wither" les éléments de celui-ci. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    pour le source Toto.ads dans "utilitaire" :
     
    package Toto is
     
    Type T_Titi is ...;
     
     
    procedure Titi;
     
    end Toto;
     
     
    pour le source Appli1 :
     
    with Toto;
     
    package Appli1 is
     
    procedure Appli1(Titi : in Toto.t_TiTi);
     
    End appli1;
    Par contre, pour une visibilité étendue dans Appli1 ( ie plus besoin de préfixé), il faut ajouter "use Toto;" dans le paquetage Appli1.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut
    C'est bon, probleme résolu avec les commandes -aIdir, -aLdir, -aOdir du gnatmake

    merci lowelace

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/02/2013, 14h59
  2. Réponses: 4
    Dernier message: 17/07/2009, 17h25
  3. utiliser package externe
    Par savoir_plus dans le forum Général Java
    Réponses: 1
    Dernier message: 06/03/2008, 07h57
  4. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  5. prob avec utilisation de package
    Par martijan dans le forum Modules
    Réponses: 13
    Dernier message: 11/07/2003, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo