begin process at 2012 05 29 11:49:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Autre

 > 

Forcer la vérification des "include"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Forcer la vérification des "include"

mardi 12 janvier 2010 à 11:24:14 | Forcer la vérification des "include"

simonpelloquin


Bonjour,

Une petite question sur le compilateur g++.

J'ai une classe (dans un couple .cc et .h) qui utilise un tableau de taille 100 défini dans le fichier header. J'ai ensuite un main.cc pour tester cette classe. Dans ce main.cc, on trouve un "include<maclasse.h>".
Je fais un "make", et je récupère donc, en plus de l'exécutable, un main.o et et un "maclasse.o". Or si je modifie la taille du tableau dans le "maclasse.h" (je la passe à 1000), le make ne recompile pas le "main.o", ce qui donne une erreur de segmentation (le main conserve le tableau à 100).
D'où ma question :
Existe-t-il un paramètre de g++ pour forcer la vérification des inclusions et recompiler le .cc si besoin ? (là, ça va parce que je n'ai que deux fichiers...)

Simon
mardi 12 janvier 2010 à 11:36:01 | Re : Forcer la vérification des "include"

CptPingu

Administrateur CodeS-SourceS

(dans un couple .cc et .h)


En C++, on utilise .cc/.hh ou .cpp/.hpp, le .h étant réservé au C.

include<maclasse.h>


J'aurais plutôt utilisé #include "maclasse.h".

Existe-t-il un paramètre de g++ pour forcer la vérification des inclusions et recompiler le .cc si besoin ? (là, ça va parce que je n'ai que deux fichiers...)


Pour g++: non. Dans le Makefile: oui ! Et heureusement. Tu as une option dans g++, appelé -MM qui génère une liste de dépendance pour ton makefile :)
Regarde le makefile d'un de mes projets:
http://www.cppfrance.com/codes/COMPILATEUR-PSEUDO-PASCAL_49318.aspx

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
mardi 12 janvier 2010 à 15:39:32 | Re : Forcer la vérification des "include"

simonpelloquin

Merci pour tes réponses.
concernant les extensions, je suis les consignes de mes profs, désolé... maintenant, si tu me dis que c'est ce qui se fait, je corrigerai.

include<maclasse.h> car j'ai fait une arborescence avec les sources dans "src", les includes dans "include" et un -I à la compilation.

J'ai regardé ton source, malheureusement, je n'ai pas tout compris, n'ayant jamais rencontré de fichiers configure ou makefile.deps. Aurais-tu un petit tuto à me proposer ?
Question subsidiaire : qu'est-ce que le makefile.rules ?

merci pour ton aide,

Simon
mardi 12 janvier 2010 à 15:53:58 | Re : Forcer la vérification des "include"

CptPingu

Administrateur CodeS-SourceS

include<maclasse.h> car j'ai fait une arborescence avec les sources dans "src", les includes dans "include" et un -I à la compilation.


Je n'avais pas le contexte. C'est dans ce cas tout à fait correcte.


J'ai regardé ton source, malheureusement, je n'ai pas tout compris, n'ayant jamais rencontré de fichiers configure ou makefile.deps. Aurais-tu un petit tuto à me proposer ?


Ok, alors pour t'expliquer brievement:

Soit le fichier toto.cc qui dépend de plusieurs fichiers .hh (ou .h), si tu tapes:

g++ -MM toto.cc


Il te réponds:

toto.o: toto.cc toto.hh truc.hh


Ce qui est exactement le format d'une règle de Makefile ! (Ce n'est pas un hasard :p).
Donc tu fais ton Makefile, comme d'habitude, et tu ajoutes l'ensemble

Question subsidiaire : qu'est-ce que le makefile.rules ?


C'est un fichier créer par le configure, et qui est inclut par le Makefile. Ca permet d'inclure une série de variables, de manière dynamique. Si tu n'as pas de configure, alors tu as forcément des variables au début de ton fichier Makefile.

makefile.deps


Ce type de fichier est construit à chaque compilation. On stocke dedans l'ensemble des dépendances (notamment les headers) obtenues par -MM, que l'on inclut directement dans le Makefile, car le format généré est compatible (voir explication du -MM).

Si tu ne veux pas te faire chier, tu peux aussi ajouter les headers en dépendances des .o associés, ça fonctionnera. Mais c'est moins robuste que cette technique, qui génère ceci pour toi.

Dans le projet que je t'ai filé, regarde:
- configure
- Makefile
- src/Makefile

C'est très générique, puisqu'il ne faut modifier que la liste des .cc et .hh du src/Makefile, quelque soit le projet (Tu devras juste ajouter un -I pour ton cas).

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio


Cette discussion est classée dans : include, vérification, main, forcer, cc


Répondre à ce message

Sujets en rapport avec ce message

probleme de connection [ par MadMatt ] Bonjour à tousJe voudrais ouvrir une base de données en C++ sous Linux (redhat 8) et avec KDevelop.Pour se faire, il faut que j'utilise les fonctions Include "je_comprend_pas_grand_chose.h" [ par neodelphi ] Bonjour tout le monde... C'est la première fois que je post un message ici, arf g le trac lol Bon je viend de me mettre au C++ pour me prog un jeu en g++ & openGL [ par EricLeRouge ] j'ai un gros soucis de compilation de fichiers en c++ avec openGL.En C tout se passe tres bien, mais en C++, rien ne va plus, expliquez moi pk voici l C++ VS Mysql [ par ours_aquatique ] Bonjour ,Aprés une semaine de recherche infructueuse , j'ai toujours le probleme suivant:je compile sous devC++ j utilise Mysql (V4.et des poussieres) Probléme avec les chaines de caractére [ par Mareck666 ] Salut, Voila j'ai un gros probléme, en faite je voudrais réaliser un chatterbot en c, du genre on rentre une question dans la console et le bot nous r inclure un .c ou .h [ par thebadskull ] Voilà je suis entrain de faire un programme qui est assez long et donc j'aimerais séparer mes fonctions dans differents fichiers par exemple fichier1. xerces c++ XML [ par boutonnet ] Bonjour a tous, je developpe une application qui doit dessiner un arbre phylogenetique (wxwidgets). Pour ce faire, je voudrais utiliser un arbre au fo Pb de déclaration multiple de variables [ par skirby ] Bonjour,J'ai un problème que je n'arrive pas à résoudre. Je dirais même que cela fait une éternité que je n'arrive pas à me servir correctement des in problème avec dll [ par loiclm86 ] Bonjour,J'aimerais créer et utiliser une dll. J'ai regardé sur internet mais j'ai quelques pbs.J'utilise Vista et Codeblocks.Je crée d'abord le projet


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,264 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales