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

Langage C++ Discussion :

Precompilateur et bonnes pratiques?


Sujet :

Langage C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Par défaut Precompilateur et bonnes pratiques?
    Bonjour a tous,

    J'ai un peu de mal a organiser mes fichiers proto de mes classes... Je me suis retrouvé obligé d'y acceder avec des chemins relatifs pour que ca marche (sous code::blocks linux) enfin bref je pense qu'il y a des manières beaucoup plus sexy de faire les choses... surtout que sous windows ca compile pas car il voit pas mes includes...

    Voici l'arbo de mon projet:


    Voici mes declarations pour le pre compil:
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <SDL/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <cstdlib>
     
    #include "include/Monde.h"
    #include "include/Individus.h"
    classe: Individus.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include "../include/Individus.h"
     
    #define M_PI  3.14159265358979323846
    classe: Monde.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "../include/Monde.h"
    Individus.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef INDIVIDUS_H
    #define INDIVIDUS_H
     
     
    #include <SDL/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <cstdlib>
    #include <math.h>
    Monde.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifndef MONDE_H
    #define MONDE_H
     
    #include <SDL/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
    #include <cstdlib>

    Qu'en pensez vous? Y a t il moyen aussi de ne pas reincluder systematiquement toutes les libs dans les proto des classes qui sont deja incluses dans main?

    Merci

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Je propose de spécifier le répertoire "include" en tant que répertoire de recherche pour les fichiers à inclure. (Avec GCC c'est avec l'option -I ; avec Code::Blocks, c'est dans les propriétés de compilation : "Project" -> "Build options" -> "Search directories" -> "Compiler" -> "Add")
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    je n'ai pas utilisé C::B depuis un moment, mais les répertoires C::B sont-ils de vrais répertoires ? ou uniquement des "filtres" comme sous visual ?
    Dans tous les cas, je pense pas qu'il soit intéressant d'avoir un répertoire include et un autre src, je préfère avoir mon .h et mon .cpp côté à côte. Avec des répertoires pour les regrouper logiquement.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Par défaut
    Merci pour vos réponses

    Je propose de spécifier le répertoire "include" en tant que répertoire de recherche pour les fichiers à inclure. (Avec GCC c'est avec l'option -I ; avec Code::Blocks, c'est dans les propriétés de compilation : "Project" -> "Build options" -> "Search directories" -> "Compiler" -> "Add")
    J'ai essayé d'ajouter mon répértoire include et de ce fait d'enlever les "../include" mais il semblerait que ca ne lui plaise pas. J'ai pas vraiment approfondi encore la question mais le premier test n'est pas vraiment concluant... =/ d'ailleur faut il utiliser des guillemets dans l'include ou des cheverons pour qu'il aille chercher dans les dossiers suggerés dans le search dir?

    je n'ai pas utilisé C::B depuis un moment, mais les répertoires C::B sont-ils de vrais répertoires ? ou uniquement des "filtres" comme sous visual ?
    Dans tous les cas, je pense pas qu'il soit intéressant d'avoir un répertoire include et un autre src, je préfère avoir mon .h et mon .cpp côté à côte. Avec des répertoires pour les regrouper logiquement.
    LOL alors sous C::B c'est 50/50. en fait Soucres, Headers, Others sont des filtres par contre src et include sont des vrais repertoires placés a la racine du projet. =)
    Alors effectivement ne pas séparer le proto du src est une solution, cependant j'ai utilisé la fonctionnalité new -> class de C::B pour créer mes petites classes, et puis je me suis dis que les confs par defaut de EDI (c::b) préconisent une organisation "propre" du projet... parcequ'effectivement c'est juste une case a décocher pour que les deux fichiers se retrouvent dans le meme dossier.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Pour vos fichiers d'include (hors bibliothèque externe) il faut des guillemets.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Bonnes pratiques de protections individuelles
    Par Community Management dans le forum Sécurité
    Réponses: 23
    Dernier message: 11/06/2024, 11h23
  2. Réponses: 7
    Dernier message: 02/11/2005, 15h30
  3. [Bonne pratique]Stratégie d'allocation
    Par jowo dans le forum C
    Réponses: 1
    Dernier message: 05/10/2005, 14h47
  4. [FOREIGN K] Valeur de champ = nom de table. Bonne pratique ?
    Par Seb des Monts dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/05/2005, 10h56

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