В Linux единственными библиотеками, на которые непосредственно ссылается исполняемый файл или библиотека, являются libc.so
, ld-linux.so
, linux-gate.so
, плюс все, что вы явно запрашиваете в командной строке компилятора . Таким образом, вы можете удалить эти ссылки, просто удалив их из командной строки компилятора.
Обратите внимание, что часто сценарии pkg-config
возвращают все косвенные зависимости, а также прямые зависимости при запросе флагов компоновщика. Вы можете либо удалить ненужные зависимости вручную, либо передать компоновщику флаг -Wl,--as-needed
, чтобы дать ему команду автоматически удалять ненужные прямые ссылки на общие библиотеки.
Что касается комплектации pyinstaller, имейте в виду, что косвенное связывание библиотек GPL через промежуточную библиотеку уже является чем-то вроде серой области; если вы дополнительно объедините их в один файл, это может не считаться «простым объединением» и не может обойти ограничения GPL. Также обратите внимание, что в GPL никогда не упоминается «связывание»; это все о производных работах. Я не юрист, и это не юридический совет, но простое добавление или удаление НЕОБХОДИМОЙ записи для библиотеки GPL, когда символы не используются, кажется маловероятным, чтобы повлиять на то, нарушаете ли вы GPL, когда сама GPL никогда не упоминает такую вещь.