Я хотел бы изменить файл setup.py таким образом, чтобы команда "python setup.py build" компилировала модуль расширения на основе C, который статически (а не динамически) связан с библиотекой.
Расширение в настоящее время динамически связано с рядом библиотек.Я хотел бы оставить все без изменений, кроме статической ссылки только на одну библиотеку.Я успешно сделал это, вручную изменив вызов gcc, который запускает distutils, хотя это требовало явного перечисления зависимых библиотек.
Возможно, это слишком много информации, но для ясности это последняя команда связывания, котораябыл выполнен во время сценария "python setup.py build":
gcc -pthread -shared -L/system/lib64 -L/system/lib/ -I/system/include build/temp.linux-x86_64-2.7/src/*.o -L/system/lib -L/usr/local/lib -L/usr/lib -ligraph -o build/lib.linux-x86_64-2.7/igraph/core.so
И это моё ручное изменение:
gcc -pthread -shared -L/system/lib64 -L/system/lib/ -I/system/include build/temp.linux-x86_64-2.7/src/*.o -L/system/lib -L/usr/local/lib -L/usr/lib /system/lib/libigraph.a -lxml2 -lz -lgmp -lstdc++ -lm -ldl -o build/lib.linux-x86_64-2.7/igraph/core.so
Раздел 2.3.4 Распространение модулей Python обсуждает спецификацию библиотек, но подходит только "library_dirs", и эти библиотеки динамически связаны.
Я использую среду разработки Linux, но пакет также будет скомпилирован и установлен в Windows, поэтомумне нужно портативное решение.
Может кто-нибудь сказать мне, где искать инструкции или как изменить скрипт setup.py?(Заранее спасибо!)
Я новичок в StackOverflow, поэтому приношу свои извинения, если я не правильно пометил этот вопрос или я сделал какую-то другую ошибку в этой публикации.