Я заметил неудачу с приложениями в зависимости от разделяемых библиотек: если вам не хватает некоторой зависимости, приложение не будет работать во время загрузки, даже если пользователь не намерен использовать функциональность зависимостей.
Я бы хотел, чтобы мои приложения были лучше. В идеале, вместо того, чтобы распространять до n разных пакетов, где n = numberOfSupportedArchitectures * numberOfSupportedOS * Π (для каждой общей библиотеки) (количество альтернатив) Я поймал ошибку "ошибка при загрузке разделяемых библиотек", испущенную во время загрузки, когда библиотека, которая мне нужна, но не нужна, окажется отсутствующей, а затем продолжите выполнение таким образом, чтобы просто избегать использования неразрешенных ссылок обеспокоен. Но, очевидно, нет никакого исключения, которое можно поймать. Если что-то отсутствует, все падает до начала main().
Ближе всего я могу получить контроль над процессом загрузки, разрешая все ссылки с помощью dlopen, dlsym и т.д. Так утомительно. Я бы ожидал, что для меня уже будет доступная библиотека?
Замечу, что это не будет проблемой для дистрибутива на основе источника и для окон. Я собирался помещать двоичные пакеты в теги, но, видимо, у меня нет реплики для монетных тегов.
'похоже, что наиболее элегантное решение будет заключаться в уточнении поведения загрузчика/компоновщика ОС.