Как уменьшить размер кросс-скомпилированных разделяемых библиотек? - PullRequest
1 голос
/ 17 января 2020

Я работаю над тем, чтобы установить python3 .6 вместе с zmq на процессор на базе ARM, который имеет около 32 МБ свободного места на FLA sh.

Я собрал python3 .6 и удалил ненужные библиотеки, я создал python установочный пакет с 15 МБ, и он отлично работает для примеров программ.

Мне нужно установить zmq для запуска моего приложения, для этого у меня есть кросс-скомпилированный pyzmq для ARM согласно приведенной ниже ссылке https://github.com/zeromq/pyzmq/wiki/Cross-compiling-PyZMQ-for-Android (эта ссылка для android, но я внес изменения в соответствии с моими настройками)

Как и ожидалось, у меня есть список следующих библиотек скомпилировано для arm

2.6M    constants.cpython-36m-x86_64-linux-gnu.so
3.0M    context.cpython-36m-x86_64-linux-gnu.so
3.0M    _device.cpython-36m-x86_64-linux-gnu.so
3.0M    error.cpython-36m-x86_64-linux-gnu.so
3.1M    message.cpython-36m-x86_64-linux-gnu.so
3.1M    _poll.cpython-36m-x86_64-linux-gnu.so
3.1M    socket.cpython-36m-x86_64-linux-gnu.so
3.0M    utils.cpython-36m-x86_64-linux-gnu.so
3.0M    _version.cpython-36m-x86_64-linux-gnu.so

Мне нужна помощь по двум проблемам здесь

  1. Размер каждой библиотеки был около 20 МБ до полосы. Мне удалось уменьшить их до 3 МБ, но мне нужно еще больше уменьшить его, чтобы приспособиться к FL sh. Я видел эти библиотеки на других платах размером около 50 КБ каждая, поэтому я считаю, что есть способ уменьшить размер каждой библиотеки. Может кто-нибудь, пожалуйста, скажите мне, как я могу это сделать?

  2. Имя файлов не названо как arm. однако для меня это не главная проблема, так как я могу переименовать их вручную, но мне нужно знать, могу ли я изменить их в процессе сборки. Когда я запускаю команду file в этих библиотеках, я вижу, что они созданы для arm.

констант. cpython -36m-x86_64- linux -gnu.so: ELF 32-битный общий объект LSB, ARM, EABI5 версия 1 (SYSV), динамически связанный, удаленный

Ниже приведен мой файл setup.cfg, который я использовал для сборки pyzmq

[global]
# the prefix with which libzmq was configured / installed
zmq_prefix = /home/sagar/zmq/_install
have_sys_un_h = False

[build_ext]
libraries = python3.6
library_dirs = /home/sagar/python_source/arm_install_with_zmq/lib
include_dirs = /usr/include/python3.6m/
plat-name = linux-armv

[bdist_egg]
plat-name = linux-armv

Заранее спасибо.

...