Это безопасно *, если ничего не происходит (что, к счастью, под вашим контролем).
Если приложение загружает дополнительные символы с помощью dlsym(RTLD_DEFAULT,...)
, оно будет искать в загруженных общих библиотеках соответствующий символ (функцию). Если он предназначен для загрузки символа из одной из этих библиотек, которую вы хотите удалить ( и не было предшествующего вызова dlopen()
), приложение не найдет его и может работать неправильно.
Обратите внимание, однако, что dlsym()
используется очень редко (и вы можете проверить, используется ли он через ldd), и еще реже использовать его без предварительного вызова dlopen()
, поэтому почти во всех случаях безопасно удалить неиспользуемые библиотеки. Это значительно улучшит переносимость вашего приложения.
* под «безопасным» я подразумеваю «вероятно, сработает, если не было ошибок во время сборки». Последствия удаления библиотек во время сборки слишком легко обнаружить, чтобы учесть их.