Я пытаюсь установить python-pin . Этот инструмент использует Pin (инструментальный инструмент Intel), который является 32-битным. Когда я пытаюсь запустить python-pin, я получаю:
E: Unable to load /home/censored/Documents/tools/Python_Pin/obj-intel64/Python_Pin.so: dlopen failed: library "libpython2.7.so.1.0" not found
У меня действительно есть libpython2.7.so.1.0, расположенный по адресу:
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
Но он в 64-битном библиотека, требующая этого, является 32-битной. Проведя немало исследований, я нашел следующие вопросы, похожие на мои:
Как я могу установить 32-битный питон на 64-битную Ubuntu
один для Ubuntu 10.10, и решение, похоже, не работает для меня.
Они были более общими:
Как запустить 32-битную программу на 64-битной версии Ubuntu?
Как запустить 32-битное приложение в Ubuntu 64-bit?
Прочитав их, я установил 32-битную версию python-dev с:
$ sudo apt-get install python-dev:i386
Установка прошла успешно, но я нигде не могу найти 32-битную версию libpython2.7.so.1.0 и все еще не могу запустить python-pin.
РЕДАКТИРОВАТЬ:
Я вручную скомпилировал 32-битный Python таким образом:
$ CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 \
-Lpwd/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" ./configure --prefix=/opt/pym32 --enable-shared
$ make
$ sudo make install
И теперь у меня наконец есть 32-битный файл libpython2.7.so.1.0 в моей папке Python. Тем не менее, когда я делаю:
$ LD_PRELOAD=/home/censored/Documents/tools/Python-2.7.13/libpython2.7.so.1.0 bin/python-pin Python_Pin/examples/ins_count.py /bin/ls
я получаю эти ошибки:
ERROR: ld.so: object '/home/censored/Documents/tools/Python-2.7.13/libpython2.7.so.1.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.