2010-07-29 2 views
0

J'ai un problème lorsque j'essaie de construire IcePy (à partir de Ice 3.3.1) (pour python 2.4.4). Compilation, les essais et l'installation de glace lui-même (version cpp) est OK, mais quand j'essayé de construire l'interface Python (répertoire « py ») Je reçois l'erreur suivante (désolé pour les chemins tronqués):Erreur de compilation IcePy (glace 3.3.1): relocalisation contre le symbole local

.../lib/python2.4/config/libpython2.4.a(abstract.o): 
relocation R_X86_64_32 against `a local symbol' can not be used when making 
a shared object; recompile with -fPIC 
.../lib/python2.4/config/libpython2.4.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 

Est-ce que quelqu'un peut m'expliquer ce que ce problème de relocalisation signifie (ou au moins me donner un lien)? Merci en avdance pour votre aide. Même si vous ne savez rien sur Ice, vos commentaires sur le message d'erreur sont les bienvenus. (bien sûr la ligne de compilation contenait déjà -fPIC de sorte que le « recompiler avec -fPIC » ne me aide pas vraiment ...)

Répondre

1

Le abstract.o était très probablement pas compilé avec -fPIC, de sorte que l'éditeur de liens de conseils que vous a donné est correct.

Retournez à votre journal de construction, et vérifiez que -fPIC n'est pas là quand libpython2.4.a a été construit. Notez que -fPIC est nécessaire pour libpython2.4.a lui-même, pas seulement pour l'IcePy.

S'il est là, vous avez trouvé un bug dans GCC (ce qui est quelque peu improbable).

Vous pouvez en savoir plus sur les lieurs et les délocalisations here ou here.

+0

Merci pour votre réponse. Je pense que je vais devoir recompiler définitivement Python (et ce n'est pas la première fois mais je voulais l'éviter). Je vais jeter un oeil à vos liens. C'est exactement ce que je cherchais. – ThR37