Maison >développement back-end >C++ >Pourquoi est-ce que j'obtiens l'erreur « La relocalisation R_ARM_MOVW_ABS_NC par rapport à « un symbole local » ne peut pas être utilisée lors de la création d'un objet partagé » lors de la compilation de ffmpeg ?

Pourquoi est-ce que j'obtiens l'erreur « La relocalisation R_ARM_MOVW_ABS_NC par rapport à « un symbole local » ne peut pas être utilisée lors de la création d'un objet partagé » lors de la compilation de ffmpeg ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 14:37:03478parcourir

Why Am I Getting

Erreur lors de la compilation avec ffmpeg : "La relocalisation R_ARM_MOVW_ABS_NC contre `un symbole local' ne peut pas être utilisée lors de la création d'un objet partagé ; recompilez avec -fPIC"

Lors de la tentative de réinstallation de ffmpeg sur un système ARM Ubuntu, une erreur de compilation s'est produite lors de l'utilisation d'un programme utilisant la bibliothèque ffmpeg. Le message d'erreur indiquait :

/usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value
collect2: ld returned 1 exit status

Cette erreur résulte d'une tentative de liaison d'une bibliothèque statique (.a) avec une bibliothèque dynamique (.so). Pour résoudre ce problème, il est nécessaire de recompiler ffmpeg avec l'indicateur -fPIC.

Recompilation avec -fPIC

Ajout de l'indicateur --enable-shared pendant ./ configure demandera à ffmpeg de créer une bibliothèque dynamique. Alternativement, vous pouvez choisir de désactiver complètement les bibliothèques statiques si vous préférez.

Une fois la bibliothèque ffmpeg recompilée avec -fPIC, la compilation devrait se dérouler avec succès sans l'erreur susmentionnée.

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