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

GTK+ avec C & C++ Discussion :

Problème utilisation commandes préprocesseur


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut Problème utilisation commandes préprocesseur
    Bonsoir,

    je code sous Ubuntu.

    Je voudrais que mon programme ne soit accessible que sous la plateforme LINUX.
    J'ai vu que l'on pouvait utiliser des commandes préprocesseur afin de gérer ce type de choses. J'ai déjà essayé de faire une chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifdef LINUX
    ...tous mes includes
    #endif
    mais apparemment LINUX n'est pas la variable à utiliser, n'est-ce-pas ?

    Pourriez-vous m'éclairer sur ce sujet ?

  2. #2
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    merci beaucoup, c'était justement cette page que je ne retrouvais plus :p

    par contre, il y a une chose que je ne comprends pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifdef G_OS_UNIX
    mes includes
    #endif
    si je fais comme ça, j'ai des erreurs à la compilation, pourtant si j'ai bien lu le lien que tu m'as indiqué, la constante G_OS_UNIX est définie sur tous les systèmes *NIX. Donc ce bout de code devrait suffire non ?

  4. #4
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    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
    24
    25
    #include <gtk/gtk.h>
     
    int main(int argc, char* argv[])
    {
      #ifndef G_OS_UNIX
      return 0;
      #endif
     
      GtkWidget *fen, *btn;
     
      gtk_init(&argc, &argv);
      fen = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      gtk_window_set_default_size(GTK_WINDOW(fen), 320, 200);
      gtk_window_set_title(GTK_WINDOW(fen), "GtkTextView");
      g_signal_connect(G_OBJECT(fen), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
      btn=gtk_button_new_with_label("Afficher");
      gtk_container_add(GTK_CONTAINER(fen), btn);
     
      gtk_widget_show_all(fen);
     
      gtk_main();
     
      return 0;
    }

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    ok cette solution marche très bien, mais je ne la trouve pas très propre.
    le préprocesseur est fait pour être interprété avant que le compilateur aille dans le main() non ?

    je voudrais comprendre pourquoi ma solution ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #ifdef G_OS_UNIX
    #include "mes_headers.h"
    #endif
    ...
    int main(int argc, char *argv[]){
    ...
    }
    ??

  6. #6
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    Si tu as plus propre on est preneurs.
    Ne pas inclure tes includes si pas UNIX d'accord, mais ensuite... dans le main le code va appeler des choses non définies et proprement planter!

    Ton code ne fonctionne pas parce que la macro doit bien être définie quelque part pour pouvoir l' utiliser (cf http://developer.gnome.org/doc/API/2...d-Macros.html).

    Note: pour du LINUX-LINUX ça dépend du compilateur. Avec GCC
    #ifdef linux
    devrait fonctionner.

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

Discussions similaires

  1. Problème utilisation commande "saveas"
    Par pampinou79 dans le forum MATLAB
    Réponses: 1
    Dernier message: 11/03/2013, 15h49
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [JSTL] [EL] Problème utilisation <c:out>
    Par XavierL dans le forum Taglibs
    Réponses: 7
    Dernier message: 14/08/2005, 20h12
  4. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26
  5. [JAR]Problème utilisation manifest et jar
    Par doudine dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/01/2005, 10h21

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