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

  FORUM HardWare.fr
  Programmation
  C

  référence indéfinie vers « __ctype_b » [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

référence indéfinie vers « __ctype_b » [Résolu]

n°1396301
darkoli
Le Petit Dinosaure Bleu
Posté le 28-06-2006 à 10:05:48  profilanswer
 

Bonjour,
 
Pour le travail, je développe des batchs en C et j'utilise une librairie Sybase qui ne supporte pas les nouvelles version de la libc6.

/opt/sybase/lib/libsybdb.so: référence indéfinie vers « __ctype_b »
/opt/sybase/lib/libsybdb.so: référence indéfinie vers « __ctype_tolower »
collect2: ld returned 1 exit status
make: *** [traiter_avisdopere] Erreur 1

Actuellement la seule solution que je connaisse est de recompiler la libc6 en modifiant quelques paramètres mais c'est chiant et long !
 
Je me suis donc dit que je pouvais utiliser plusieurs libc6 en parallèle ! Une pour les batchs et la libc6 du système pour toutes les autres applications.  La commande ldd a désigné les dossiers /lib et /???/cmov/ que jJ'ai donc mis de côté (avec mes librairies dynamiques).
 
J'ai mis à jour la variable LD_LIBRARY_PATH de façon à utiliser les librairies que j'avais mis de côté. Cela fonctionne bien sauf pour la librairie ld-linux.so ! Je n'arrive pas à forcer l'usage de cette librairie par gcc lors de la compilation (en revanche il utilise bien la libc6 que j'ai mis de côté).
 
Avez-vous une solution pour résoudre mon problème ?
 
Dans un environnement spécifique je souhaite utiliser une librairie ld-linux.so.2 différente de /lib/ld-linux.so.2.
 
Merci.


Message édité par darkoli le 28-06-2006 à 11:50:08

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
mood
Publicité
Posté le 28-06-2006 à 10:05:48  profilanswer
 

n°1396420
darkoli
Le Petit Dinosaure Bleu
Posté le 28-06-2006 à 11:49:00  profilanswer
 

Bon j'ai trouvé tout seul !
 
Donc j 'ai fait deux fichiers .c :
 
__wrap___ctype_b.c

#include <ctype.h>
 
__const unsigned short int **__wrap___ctype_b (void) {
  return __ctype_b_loc();
}


 
__wrap___ctype_tolower.c

#include <ctype.h>
 
__const __int32_t **__wrap___ctype_tolower (void) {
  return __ctype_tolower_loc();
}


 
Puis les .o :

gcc -c __wrap___ctype_b.c
gcc -c __wrap___ctype_tolower.c


 
Puis j'ai ajouté à la variable LDFLAGS dans le fichier .compilrc : $(LIBRAIRIES)/__wrap___ctype_b.o $(LIBRAIRIES)/__wrap___ctype_tolower.o -Wl,--wrap,__ctype_b -Wl,--wrap,__ctype_tolower
 
Et ça marche, je peux compiler à nouveau sans patcher la libc6 et sans avoir deux libc6 différentes sur un même post !
:bounce:
[:aia]
[:alandon]
[:alucard]
[:amazan]


Message édité par darkoli le 28-06-2006 à 11:49:34

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°1396432
Elmoricq
Modérateur
Posté le 28-06-2006 à 11:59:48  profilanswer
 

Je le garde dans un coin, ce post, vu que je bosse aussi sur Sybase. [:klem3i1]

n°1396480
darkoli
Le Petit Dinosaure Bleu
Posté le 28-06-2006 à 13:09:54  profilanswer
 

Elmoricq a écrit :

Je le garde dans un coin, ce post, vu que je bosse aussi sur Sybase. [:klem3i1]

La distribution que j'utilise est une Ubuntu Dapper Drake.
Pour les pilotes Sybase c'est la version DB et non CT qu'on utilise. La version CT est plus récente et je ne pense pas qu'on aurait eu ce problème avec mais pour l'utiliser on doit re-écrire toutes nos librairies ... :sweat:


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°1396493
Elmoricq
Modérateur
Posté le 28-06-2006 à 13:18:42  profilanswer
 

Ouaip. Et surtout la CTLibrary est une merde sans nom.
Ce qu'on faisait en un tournemain avec la DBLibrary, il faut multiplier par 5 ou 6 le nombre de lignes de code en CTLib.  
 
Rien que pour établir une connexion, il faut 7 ou 8 fonctions [:el g]
 
Et je te raconte même pas la liste de bibliothèques à inclure à la compilation (contre -ldb avec la DBLib), évidemment toutes inter-dépendantes (si je te donne la liste, tu vas pleurer).
 
Je ne sais pas ce qu'ils ont fumé chez Sybase, mais je n'ai toujours pas trouvé de justification à un tel foirage. On a beaucoup perdu en passant à la CT, et la DB n'étant plus maintenue... :(

n°1396804
darkoli
Le Petit Dinosaure Bleu
Posté le 28-06-2006 à 18:44:56  profilanswer
 

Elmoricq a écrit :

Ouaip. Et surtout la CTLibrary est une merde sans nom.
Ce qu'on faisait en un tournemain avec la DBLibrary, il faut multiplier par 5 ou 6 le nombre de lignes de code en CTLib.  
 
Rien que pour établir une connexion, il faut 7 ou 8 fonctions [:el g]
 
Et je te raconte même pas la liste de bibliothèques à inclure à la compilation (contre -ldb avec la DBLib), évidemment toutes inter-dépendantes (si je te donne la liste, tu vas pleurer).
 
Je ne sais pas ce qu'ils ont fumé chez Sybase, mais je n'ai toujours pas trouvé de justification à un tel foirage. On a beaucoup perdu en passant à la CT, et la DB n'étant plus maintenue... :(

Pourtant les admins Sybase n'arrêtent pas de nous dire que la CT lib c'est géniale et que la DB lib n'est pas optimisée ... blablabla ....
C'est vraiequela DB lib est très simple d'utilisation dommage effectivement qu'elle ne soit plus maintenue !


Message édité par darkoli le 28-06-2006 à 18:45:18

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html

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

  référence indéfinie vers « __ctype_b » [Résolu]

 

Sujets relatifs
[resolu]Pause[Javascript] [Résolu] createElement et IE
[resolu] nombre de noeuds correspondants à plusieurs critèresCommande d'instrument, redirection vers fichier
[resolu]Ajouter un liste à un combobox[RESOLU] requete avec condition
[resolu]Changer le nom d'un fichier a l'enregistrement[resolu] Comment enregistrer un click de souris ???
[Résolu] [MySQL] Comparaison entre 2 tables[resolu]enregister un fichier xls mis a jour.
Plus de sujets relatifs à : référence indéfinie vers « __ctype_b » [Résolu]


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