Maison  >  Article  >  développement back-end  >  Pourquoi la recompilation avec -fPIC résout-elle les erreurs de liaison ?

Pourquoi la recompilation avec -fPIC résout-elle les erreurs de liaison ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 05:04:02998parcourir

Why does recompiling with -fPIC resolve linking errors?

Recompilation avec -fPIC : résolution des erreurs de liaison

La recompilation avec -fPIC est nécessaire lorsque l'on rencontre l'erreur "relocation R_ARM_MOVW_ABS_NC contre `un symbole local ' ne peut pas être utilisé lors de la création d'un objet partagé." Cette erreur se produit lors de la liaison d'un fichier objet avec un symbole restreint, qui ne peut pas être utilisé lorsqu'il est combiné avec un objet partagé.

Pour résoudre ce problème avec succès et recompiler avec -fPIC :

  • Désactiver les bibliothèques statiques et dynamiques : malgré la suggestion du compilateur, la désactivation des bibliothèques statiques et dynamiques peut être une solution plus directe. Sélectionnez la méthode qui correspond le mieux à vos besoins.
  • Activer les bibliothèques partagées : Une approche alternative consiste à activer les bibliothèques partagées lors de la configuration du logiciel. Ceci peut être réalisé en ajoutant l'option --enable-shared aux commandes ./configure, garantissant la compilation d'une bibliothèque dynamique (par exemple, .so) au lieu d'une bibliothèque statique (par exemple, .a). .

En mettant en œuvre ces étapes, vous pouvez recompiler votre ffmpeg avec -fPIC, résolvant ainsi l'erreur de liaison et permettant une compilation réussie de votre programme qui utilise la bibliothèque ffmpeg.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn