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

  FORUM HardWare.fr
  Programmation
  C

  Linux : Relocation error

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Linux : Relocation error

n°915629
chrisbk
-
Posté le 06-12-2004 à 12:31:58  profilanswer
 

J'en ai plein le cul, j'en ai marre, je craque.
 
Comment faire sous ce \#~^@ de linux de mon #~\\@#~= pour eviter d'avoir des relocations error ?
 
Zallez me dire : inclu le .a qui va bien dans les flags du linker ducon [:itm]
 
A ceci je reponds : il y est. Seulement il semblerait que l'ordre dans lequel on passe les .a a ce linker ait un role a jouer, et parfois apres avoir ajouter des fonctions a une lib je dois 'remettre a jour' l'ordre pour ne plus avoir des relocations errors. Que faire ?


---------------
NP: HTTP Error 764 Stupid coder found
mood
Publicité
Posté le 06-12-2004 à 12:31:58  profilanswer
 

n°915658
manatane
En vous remerciant, bonsoir
Posté le 06-12-2004 à 13:03:47  profilanswer
 

Et après un  
$ ar -q libtruc.a truc1.o truc2.o # on ajoute les fichiers à l'archive sans updater l'index
$ ranlib libtruc.a # on update l'index
çà foire toujours?


Message édité par manatane le 06-12-2004 à 13:04:00
n°915667
chrisbk
-
Posté le 06-12-2004 à 13:11:16  profilanswer
 

sais pas, j'essayerais tout a l'heure. Tu peux me dire en detail ca fait quoi ? (note je veux pas rajouter des .o a un .a mais faire un executable avec des .a, et lorsque l'exe appels des fonctions contenus dans les .a ca debloque. ca me lourde grave, y pourrait pas le dire au link qu'il a pas trouver la fonction, l'animal ?)

n°915679
Kristoph
Posté le 06-12-2004 à 13:25:24  profilanswer
 

L'ordre des .a a un role à jouer uniquement dans le cas ou un symbole se retrouve dans plusieurs .a à la fois. Le linker prend le premier trouvé.

n°915683
chrisbk
-
Posté le 06-12-2004 à 13:30:06  profilanswer
 

Krys : bin heuh, je te repondrais non, en changeant l'ordre des .a adns les flags du linker (et juste ca), j'ai des relocations errors, ou pas.

n°915690
manatane
En vous remerciant, bonsoir
Posté le 06-12-2004 à 13:36:30  profilanswer
 

ar c'est vieux et chiant :)
Ton problème viens d'un de tes .a, je pense que t'as un petit problème d'interposing :D
Bon dans ta librairie statique tu as un index qui liste les noms des variables globales et des fonctions. C'est cette index qu'utilise le linker pour inclure ou non les modules.
L'index est créé quand la librairie est créée ou mise à jour mais on peut supprimer la création de l'index. L'option -q de ar permet d'ajouter des modules sans création de l'index.
Ranlib crée ou met à jour l'index.
Ensuite en effet l'ordre des modules dans la librairie est important puisque si le meme symbole est présent dans plusieurs modules ar va se contenter d'inclure le premier [:bap2703] Il y a quand meme des options pour inclure un module à une place spécifique et changer l'ordre de ceux déjà présent dans l'archive...

n°915692
chrisbk
-
Posté le 06-12-2004 à 13:37:26  profilanswer
 

mais si j'ai plusieurs def dans les .a d'une meme fonction ca devrait pas me faire de relocation error ? ca pourrait partir en couille vu qu'on appelerait pas la fonction qu'on pense appeler, mais pas de relocation error ??

n°915699
manatane
En vous remerciant, bonsoir
Posté le 06-12-2004 à 13:45:02  profilanswer
 

Tu as ton index qui est foiré (enfin pas pour ar mais bon) vu qu'un module est censé etre inclut et qu'il ne l'ait pas. Ton programme lié statiquement appelle à l'inlusion de fonction non présente dans un index -> relocation error.
(j'espère ne pas etre à coté de la plaque)


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

  Linux : Relocation error

 

Sujets relatifs
agl gratuit ou sous linux[PHP] Encore une parse error à deux sous :-/
Existe t'il des equivalents aux librairies Windows sous Linux ?erreur compilation gcc parse error at the end of input
ou inclure les lib sous linux??Windows, Linux et retour chariot \n (ASCII 13)
Moteur de recherche GNU pour Linux/PHPcompilation d'une couche Ethernet modifiée sur linux
Un bon RAD pour linux ?Serveur X & Ja va sous Linux
Plus de sujets relatifs à : Linux : Relocation error


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