Forum Programmation.c etags et .h

Posté par  .
Étiquettes : aucune
0
17
juin
2005
bonjour,

j'ai un petit soucis avec etags.
Jusqu'à présent je disposais des sources (.h et surtout .c) des bibliothèques que j'utilisais mais là je ne dispose que des fichiers en-têtes (.h).
J'aimerais construire un fichier tags contenant le nom des fonctions uniquement à partir des .h (avec les .c pas de problèmes) et ces traîtres de google et de man n'ont pas voulu me répondre.

Voilà, je te remercie cher forum si tu pouvais me fournir les options à passer à etags pour que ça marche (tm).
  • # Et ?

    Posté par  . Évalué à 1.

    Je ne connais pas eTags en particulier, mais en programmation C, tu n'as besoin que du .h, sous réserve qu'il soit écrit correctement, pour compiler tes programmes.

    Après, à l'édition, il te faudra soit les *.o|*.a pour faire une compilation statique, soit avoir les bibliothèques partagées installées où il faut, et dans ce cas il faut passer l'option -llenomdelalibsanslepréfixeLIB à gcc. Eventuellement -L (en majuscule), si tes biblothèques ne sont pas installées dans des répertoires standard (style /usr/lib).
    • [^] # Re: Et ?

      Posté par  . Évalué à 1.

      etags n'a besoin que des .h pour creer le fichier TAGS...

    • [^] # Re: Et ?

      Posté par  . Évalué à 1.

      nan, rien à voir.

      J'utilise le fichier TAGS généré par etags pour la complétion dans emacs (j'aurais du le préciser, désolé). Avec les fichiers .c pas de problèmes, le fichier TAGS contient le nom des fonctions que fourni la bibliothèque. Mais avec uniquement les .h, allez savoir pourquoi le nom des fonctions n'apparait pas dans TAGS, là est le problème.

      PS: la bibliothèque en question c'est GTK/GDK/glib dont les sources sont facilement accessibles mais cela ne sera pas forcement le cas avec d'autres bibliothèques, voilà pourquoi je pose la question, sinon je téléchargerais les sources et puis voilà.
      • [^] # Re: Et ?

        Posté par  . Évalué à 1.

        mmmh, je comprends pas, avec des .h à moi ça marche (avec l'option --declarations). Je vois pas ce qu'ils ont de particulier les headers de gtk :(
  • # j'y suis presque

    Posté par  . Évalué à 1.

    j'ai identifié le problème dans les .h de la lib gtk.
    Quand etags tombe sur une fonction comme celle là

    GType gtk_window_get_type (void) G_GNUC_CONST;

    il l'a prend en compte mais pas les suivantes.
    Ce prototype me semble bizarre, est-ce qu'il est correct? Je comprends pas l'utilité de G_GNUC_CONST et surtout ce qu'il fait après les arguments de la fonction.

    j'y comprends rien, et pourquoi etags il en veut pas?
    • [^] # Re: j'y suis presque

      Posté par  . Évalué à 2.

      http://advogato.org/person/TazForEver/diary.html?start=13

      je connaissais pas ca non plus...
      il me semble qu'etags fonctionne avec des regex.
      faudrait que tu changes les regex pour qu'il detecte ces type de fonctions.
      man etags

      (j'ai pas linux au taf pour aire des essaies :(

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.