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

Free Pascal Discussion :

Où mettre la directive de compilation $mode ? [FAQ] [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut Où mettre la directive de compilation $mode ?
    Bonjour,

    j'ai un fichier config.inc dans le quel j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {$IFDEF FPC}
        {$mode objfpc}{$H+}
    {$ENDIF}
     
    ...
    dans mes fichiers j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    unit UnitXXXX;
     
    interface
     
    {$I config.inc}
     
    uses Code, Windows, SysUtils, Extension, Classes ;
     
    ...
    lorsque je compile, j'ai le message suivant :
    Warning: Misplace global compiler switch
    le problème c'est que j'ai plein de fichiers donc je m'étais dis que de le placer dans un fichier de config c'était bien.
    Que faire pour effacer ce message ?

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Comme il s'agit d'une directive globale qui affecte tout le processus de compilation, la directive {$mode } doit précéder la clause Program ou Unit.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Xio,
    Citation Envoyé par Alcatîz Voir le message
    Bonjour !

    Comme il s'agit d'une directive globale qui affecte tout le processus de compilation, la directive {$mode } doit précéder la clause Program ou Unit.

    Tu es sûr ?

    Généré par Lazarus, pour une simple application console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    program listes;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Classes
      { add your units here };
    Pour une Unit, il est probable qu'il faille le mettre avant le mot-clé interface, si même c'est utile (normalement, si c'est mis dans le program, c'est répercuté pour toutes les unités ?).

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Je cite la doc de Free Pascal 2.2.0 :
    Global directives affect the whole of the compilation process. That is why they also have a commandline counterpart. The command-line counterpart is given for each of the directives. They must be specified before the unit or program clause in a source file, or they will have no effect.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Xie,

    Donc soit la doc se trompe, soit c'est Lazarus. Mais comme le programme généré fonctionne parfaitement... va savoir.

    Peut-être qu'il y a des cas particuliers ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    Je cite la doc de Free Pascal 2.2.0 :
    I think it's a mistake, you should understand:

    They must be specified before the unit or program clause USES in a source file, or they will have no effect.

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ilikeit Voir le message
    I think it's a mistake, you should understand:

    They must be specified before the unit or program clause USES in a source file, or they will have no effect.
    Ceci rejoint la remarque de Droggo mais, si c'est exact, il faut avouer que ce n'est pas clair du tout dans la formulation.

    @bubulemaster : je vois que le problème est résolu mais qu'as-tu changé au juste dans ton programme ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/02/2006, 15h42
  2. Directives de compilation pour g++
    Par Jfrancois57 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 09/11/2005, 11h23
  3. Directives de compilation (globales ?)
    Par korntex5 dans le forum Langage
    Réponses: 6
    Dernier message: 24/10/2005, 14h13
  4. directive de compilation
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/02/2005, 10h46
  5. Directives de compilations.
    Par ushu dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 10h44

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