probleme:liaison
Ceci est une ancienne révision du document !
Messages d'erreur
ld: error: ….a(…): requires dynamic R_X86_64_PC32 reloc against '…' which may overflow at runtime; recompile with -fPIC
C'est dû à un problème dans l'ordre des fichiers objets et des librairies statique.
Problème :
/usr/bin/c++ -fPIC -shared -Wl,-soname,lib2lgc.so -o lib2lgc.so CMakeFiles/2lgc.dir/2lgc/math/compare_decimal.cc.o CMakeFiles/2lgc.dir/2lgc/poco/number.cc.o CMakeFiles/2lgc.dir/2lgc/poco/number_visitor_unit.cc.o CMakeFiles/2lgc.dir/2lgc/poco/number_visitor_value.cc.o 2lgc/poco/lib2lgcpoco.a
Solution :
/usr/bin/c++ -fPIC -shared -Wl,-soname,lib2lgc.so -o lib2lgc.so 2lgc/poco/lib2lgcpoco.a CMakeFiles/2lgc.dir/2lgc/math/compare_decimal.cc.o CMakeFiles/2lgc.dir/2lgc/poco/number.cc.o CMakeFiles/2lgc.dir/2lgc/poco/number_visitor_unit.cc.o CMakeFiles/2lgc.dir/2lgc/poco/number_visitor_value.cc.o
/usr/bin/ld: relocation R_X86_64_32 against '…' can not be used when making a shared object; recompile with -fPIC
Dans un environnement 64 bits, il n'est pas possible d'utiliser des librairies statiques pour générer une librairie dynamique si les librairies statiques n'ont pas été compilées avec -fPIC
.
Position Independent Code and x86-64 libraries Archive du 05/01/2013 le 24/01/2023
probleme/liaison.1674554353.txt.gz · Dernière modification : 2023/01/24 10:59 de root