Expression régulière C

Résolu
Digaboy Messages postés 6 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 27 septembre 2007 - 15 août 2007 à 01:38
Digaboy Messages postés 6 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 27 septembre 2007 - 16 août 2007 à 17:51
Bonjour

Je souhaiterais faire des expressions régulières en C. J'ai appris les bases grâce à ce tutoriel

Par contre je n'arrive pas à compiler mon code car je ne sais pas quel librairie je dois inclure pour compiler.
Je pense que je dois inclure la librairie regexp.h mais je n'arrive pas à la trouver.

Pourriez vous m'aider à la trouver.

Merci

5 réponses

Digaboy Messages postés 6 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 27 septembre 2007
16 août 2007 à 17:51
Bon je viens de résoudre mon problème grâce au forum hardawre.fr mais je vous fais profiter de la réponse :)

 
Mais passons, voila comment j'ai procédé pour résoudre mon problème :

 
- installations de Rx1.5  dans Code Blocks  
        Plugins -> Dev C++ DevPack Update/installer  
            serveur "devpack.org "

            catégorie "String manipulation"

 
- remplacer #include <regex.h> par #include <rxposix.h>

 
- Project -> Build Option ->linker

     ajouter les fichiers   librx.a    librx.ddl.a         librx.lib

et après ça, j'ai pu compiler mon code sans problème
      
3
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
16 août 2007 à 00:06
Salut, il s'agit de la GNU C Library (glibc). Elle est installée par défaut sur linux. Sous win tu peux voir ici et  ici ou ici
0
Digaboy Messages postés 6 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 27 septembre 2007
16 août 2007 à 01:54
Après quelques recherches une distribution linux, j'ai trouvé le fichier regex.h.

mais lorsque je compile j'ai droit à ce magnifique message
Linking console executable: D:\code\jap\test_regexp\console.exe
.objs\main.o:main.c:(.text+0x51): undefined reference to `regcomp'
.objs\main.o:main.c:(.text+0x88): undefined reference to `regexec'
.objs\main.o:main.c:(.text+0x96): undefined reference to `regfree'
.objs\main.o:main.c:(.text+0xf4): undefined reference to `regerror'
.objs\main.o:main.c:(.text+0x12b): undefined reference to `regerror'

Sinon tu pense que cela peut venir du fait que j'utilise le compilateur intégré avec code blocks ( mingw32-gcc) ??
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 août 2007 à 13:46
Salut,

Il faut que tu mettes le répertoire de la lib qui va bien (Qui doit trainer pas loin du header) en entrée du lieur...

Le .h ne contient que des définitions : le lieur peut pas deviner les implémentations.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Digaboy Messages postés 6 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 27 septembre 2007
16 août 2007 à 17:21
Ce qui est bizarre, c'est que dans mes options de linker, j'ai bien ajouté la librairie libregex.a donc normalement c'est ok de ce coté là.

Bon je vais tester avec un autre IDE pour voir si le problème ne vient pas de là.
0
Rejoignez-nous