Skip to content

pyenv

Python: Relocation R_X86_64_PC32 against symbol can not be used when making a shared object Error

This guide shows a possible solution for Python error Relocation R_X86_64_PC32 against symbol can not be used when making a shared object.

When running some Python libs such as matplotlib or pymc, you might face and error similar to below:

libpython3.9.a(bytearrayobject.o): relocation R_X86_64_PC32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC
---
E           /usr/bin/ld: /home/bgasparotto/.pyenv/versions/3.9.7/lib/libpython3.9.a(longobject.o): relocation R_X86_64_PC32 against symbol `PyExc_OverflowError' can not be used when making a shared object; recompile with -fPIC
E           /usr/bin/ld: final link failed: bad value
E           collect2: error: ld returned 1 exit status

In a nutshell, this error tells us that a Python shared lib expected to be available in your Python was not found during execution.

Read More »Python: Relocation R_X86_64_PC32 against symbol can not be used when making a shared object Error