Я нашел это (в основном, относительно статической компиляции модулей Python):
Который описывает файл, используемый для конфигурации, расположенный здесь:
<Python_Source>/Modules/Setup
Если этот файл отсутствует, его можно создать, скопировав:
<Python_Source>/Modules/Setup.dist
Файл Setup
содержит тонны документации, а README
, включенный в исходный код, также предлагает много полезной информации о компиляции.
Я еще не пробовал компилировать, но я думаю, что с этими ресурсами я должен быть успешным, когда попробую. Я опубликую свои результаты как комментарий здесь.
Обновление
Чтобы получить чисто статический исполняемый файл Python, вы также должны настроить его следующим образом:
./configure LDFLAGS="-static -static-libgcc" CPPFLAGS="-static"
После того, как вы соберете эти флаги, вы, скорее всего, получите много предупреждений о «переименовании, потому что библиотеки нет». Это означает, что вы неправильно настроили Modules/Setup
и вам необходимо:
а) добавить одну строку (около верха), например:
*static*
(это звездочка / звездочка, слово "статический" и звездочка без пробелов)
б) раскомментируйте все модули, которые должны быть доступны статически (например, математические, массивные и т. Д.)
Вам также может понадобиться добавить определенные флаги компоновщика (как упомянуто в ссылке, которую я разместил выше). Мой опыт показывает, что библиотеки работают без изменений.
Также может быть полезно запустить make следующим образом:
make 2>&1 | grep 'renaming'
Здесь будут показаны все модули, которые не удалось скомпилировать из-за статической связи.