Полностью статически связанные программы больше не рекомендуются.
Уровень переносимости переместился из вызовов ядра в базовые библиотеки (помните pthread desaster и проблемы с потоками LinuxThreads <-> NPTL?).
Следуйте стандарту LSB 4.0.Доверьтесь существованию упомянутых там библиотек (не так много, к сожалению) и объедините все другие разделяемые библиотеки с вашим приложением.Есть флаг компоновщика - я думаю, что это -L - где вы можете установить ldd путь, который имеет приоритет над всеми другими настройками во время загрузки общей библиотеки, так что ваши библиотеки всегда загружаются первыми.
Убедитесь, что все библиотеки вызывают только API-функции, одобренные LSB (или посмотрите на веб-сайте LSB и посмотрите, насколько серьезен неподдерживаемый вызов API LSB - иногда вы просто не можете избежать этого, и у нихсписок дистрибутивов, которые поддерживают этот вызов).
Это рекомендуемый способ доставки двоичных исполняемых файлов.И это все еще отстой в Linux по сравнению с Windows / MacOSX.