У меня есть программа manydl.c
на моей веб-страницы (для Linux), которая генерирует некоторый «случайный» код C во «временный» файл *.c
, компилирует его в общий доступ *.so
библиотеки, затем dlopen
-s, что *.so
, и повторите это много раз. Мне удалось заставить его генерировать и dlopen
около ста тысяч *.so
файлов.
Вы можете прочитать комментарии и попробовать их (в новом каталоге, поскольку он генерирует множество файлов *.c
и *.so
).
По сути, в Linux вы можете dlopen
столько общих библиотек, сколько пожелаете . Единственным ограничением является адресное пространство процесса (а также другие ресурсы памяти), и вы не достигнете их до dlopen
, то есть со многих сотен тысяч общих библиотек.
И, как ответил Mat , есть некоторые программы с множеством связанных динамических библиотек. Мой ежедневный браузер Google Chrome загружает 73 разделяемые библиотеки.
Короче, не волнуйтесь.
(Может случиться, что с большим количеством больших библиотек, особенно в C ++, вы можете получить значительное время запуска из-за перемещения и динамического связывания. Но сначала не беспокойтесь).