J'ai eu de nombreux problèmes de compilation d'objets partagés qui relient de manière statique à l'encontre des bibliothèques statiques. Ce problème ne s'affiche que sur x84_64 plates-formes. Lorsque l'on fait la même compilation de travail sur x86_32 je n'ai pas de problèmes.
C'est peut-être un OS spécifique GCC configuration chose, mais ma recherche indique que sa façon de GCC travaille sur x86_64 plates-formes. De toute façon, je suis en utilisant gcc 4.4.3 sur Ubuntu 10.04 x86_64.
Comment est résolu le problème ?... S'assurer que tous les bibliothèque statique dépendances sont compilé avec-fPIC.
Question 1: Quelle est la différence entre le fpic et -fPIC (apparemment -fPIC génère plus d'instructions x86) ? Pourquoi le type ultérieure plus pertinente dans le x86_64 contexte ?
Question 2: Mon hypothèse est que, lorsque vous vous connectez à l'encontre de code statique vous êtes le câblage de l'fonctions dans votre binaire au moment de la liaison, pourquoi est-il besoin de le niveau d'indirection la "position indépendante code" machines offre ?
Question 3: Maintenant, si x86 n'a pas besoin d'-fpic / -fPIC pour lier des objets partagés contre l'électricité statique archives pourquoi est-il nécessaire dans x86_64 ?
Question 4: même si elle est nécessaire, pourquoi n'est-il pas fourni implicitement ? Je pensais que les modifications importantes qui était censé être un gros no-no