Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
898 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Résolu] outil pour trouver les define ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] outil pour trouver les define ?

n°1551531
freewol
Ceci n'est pas une citation
Posté le 30-04-2007 à 15:42:57  profilanswer
 

Bonjour,
 
je ne suis pas sûr que cet outil existe, j'ai même peur que non, mais je demande à tout hasard ;)
Mon problème c'est qu'en lisant des codes sources de gros logiciels on tombe souvent sur un truc du genre MAX_COUNT, et qu'on aimerait savoir où est la ligne "#define MAX_COUNT". La solution simple consiste à faire un grep dans le répertoire des headers, mais s'il y a une grosse hiérarchie de répertoires avec des defines un peu partout c'est le bordel :/  
Donc j'aurais aimé savoir s'il existe une commande ou un logiciel qui pourrait chercher pour moi le define :)
 
Merci !


Message édité par freewol le 07-05-2007 à 12:32:25
mood
Publicité
Posté le 30-04-2007 à 15:42:57  profilanswer
 

n°1551628
Joel F
Real men use unique_ptr
Posté le 30-04-2007 à 20:04:10  profilanswer
 

grep recursif redirigé dans un awk bien senti ...
sinon si t'as un IDE kivabiäin, Find in Files :p

n°1551877
marctes
Posté le 01-05-2007 à 18:40:29  profilanswer
 

Visual Studio, click droit, go to declaration
 

n°1551905
freewol
Ceci n'est pas une citation
Posté le 01-05-2007 à 19:24:14  profilanswer
 

j'utilise gcc ;)

n°1551958
0x90
Posté le 01-05-2007 à 21:35:37  profilanswer
 

Tu fais un #define LETRUCQUETUCHERCHE, tu compile, et tu regarde le message de gcc:


test.cpp:5:1: warning: "CANARD" redefined
test.cpp:1:1: warning: this is the location of the previous definition


Message édité par 0x90 le 01-05-2007 à 21:35:49

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1552047
freewol
Ceci n'est pas une citation
Posté le 02-05-2007 à 09:52:06  profilanswer
 

oki, effectivement c'est une bonne idée :)
après comme le projet est plutôt gros, l'idée c'était de pouvoir trouver le define justement sans compiler, pour gagner du temps :)

n°1555697
tbp
Posté le 05-05-2007 à 14:20:53  profilanswer
 

CTAGS http://ctags.sourceforge.net/
 
On pourrait espérer qu'au bout de 10 ans les gens connaissent. Mais non.

n°1555776
0x90
Posté le 05-05-2007 à 18:05:48  profilanswer
 

tbp a écrit :

CTAGS http://ctags.sourceforge.net/
 
On pourrait espérer qu'au bout de 10 ans les gens connaissent. Mais non.


 
Je pensais pas qu'il trouvait aussi les definitions des define [:alberich]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1555857
marctes
Posté le 05-05-2007 à 20:58:05  profilanswer
 

freewol a écrit :

j'utilise gcc ;)


 
Utilise Visual Studio, il n'y a pas mieux comme IDE
gcc, je ne l'utilise que pour recompiler au final.

n°1555860
_darkalt3_
Proctopathe
Posté le 05-05-2007 à 21:10:01  profilanswer
 

marctes a écrit :

Utilise Visual Studio, il n'y a pas mieux comme IDE
gcc, je ne l'utilise que pour recompiler au final.


(sauf s'il est sous linux ou autre chose que windows)


---------------
Töp of the plöp
mood
Publicité
Posté le 05-05-2007 à 21:10:01  profilanswer
 

n°1555917
tbp
Posté le 06-05-2007 à 04:37:11  profilanswer
 

marctes a écrit :

Utilise Visual Studio, il n'y a pas mieux comme IDE
gcc, je ne l'utilise que pour recompiler au final.


Installer cygwin
Project -> Makefile
Pointer vers GNU Make et le makefile
Prefixer CC/CXX pour executer cet horrible chose

Code :
  1. #!/usr/bin/perl
  2. my $cmdline;
  3. foreach (@ARGV) {
  4. $_ = "\"$_\"" if / /;
  5. $cmdline = $cmdline . " " . $_;
  6. }
  7. $cmdline = $cmdline . " -fmessage-length=0 -fdiagnostics-show-location=once";
  8. my $errors = 0;
  9. open(IN, "$cmdline 2>&1|" ) || die "can't run '$cmdline': $!";
  10. while(<IN> ) {
  11. chomp;
  12. next if (/ffunction-sections may affect/); # annoying. plonked.
  13. next if (/vectorized 0 loops in function/); #ditto
  14. next if length == 0;
  15. if (/^(\w:[\/\\][^:]+):([0-9]+):\s*([^:]+):(.*)/) {
  16.  print_msdev($1, $2, $3, $4);
  17.  next;
  18. }
  19. if (/^([^:]+):([0-9]+):\s*([^:]+):(.*)/) {
  20.  print_msdev($1, $2, $3, $4);
  21.  next;
  22. }
  23. s/\//\\/g;
  24. print "$_\n";
  25. };
  26. close(IN);
  27. exit ($errors > 0 ? 1 : 0);
  28. sub print_msdev {
  29. my ($file, $line, $type, $rest) = @_;
  30. ++$errors  if ($type =~/^error/);
  31. $file =~ s/\//\\/g;
  32. print "${file}(${line}): ${type}: ${rest}\n";
  33. }


... et hop, gcc est intégré à Visual Studio.

n°1556325
freewol
Ceci n'est pas une citation
Posté le 07-05-2007 à 09:40:10  profilanswer
 

Je vais regarder CTAGS tout de suite merci :)
 
Et sinon je suis sous linux donc à moins d'installer windows avec vmware puis gcc avec cygwin, sans parler du coût de la licence, je pense utiliser une solution autre que Visual Studio ;) Mais merci qd même pour l'info :)

n°1556377
tbp
Posté le 07-05-2007 à 10:42:11  profilanswer
 

Le biniou précédent était juste là pour soulager les pauvres hères opérants en milieu hostile. Sous linux, ctags est intégré à peu près partout.


Message édité par tbp le 07-05-2007 à 10:42:31
n°1556449
freewol
Ceci n'est pas une citation
Posté le 07-05-2007 à 12:32:04  profilanswer
 

je viens d'essayer ctags, et ça y est je l'ai adopté : c'est génial !!
Je l'utilise avec vim mais ça fonctionne aussi avec emacs, et c'est super bien fait :)
 
Merci !

n°1556832
marctes
Posté le 08-05-2007 à 13:03:40  profilanswer
 

_darkalt3_ a écrit :

(sauf s'il est sous linux ou autre chose que windows)


 
Ben non, j'utilise VS sous Windows, je transfère les sources sous Unix/Solaris et je recompile avec gcc pour l'exe final.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Résolu] outil pour trouver les define ?

 

Sujets relatifs
[resolu] probleme pour rentrer dans un ifNoob détected ! ouvrir un lien dans la meme page
[BATCH] Supprimer les " d'un string [résolu][resolu]Incrémenter une Plage de cellule avec range ?
[resolu] Mise à jour si modification d'une feuille[BATCH] Améliorer ce bout de code? [résolu]
un noob cherche à centrer une image [résolu][résolu] Probleme pour connaitre la taille d'une chaine de caracteres
[Résolu]Boucle et lecture de fichiers...Comment trouver le lien exact
Plus de sujets relatifs à : [Résolu] outil pour trouver les define ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR