Работа с общими библиотеками - это все еще dlopen, dlsym и другие?
Я использовал dlopen()
, dlsym()
и друзья в прошлом, чтобы загружать динамические библиотеки вручную во время выполнения - но это было в C. В C++ я ожидал бы немного более высокий уровень абстракции API, или, по крайней мере - что-то, что прозрачно заботится о распределении имен для вам, а не только придерживаться extern "C"
автономные функции.
Что ж, согласно мини- руководству по d ++ C++, мои ожидания должны быть опущены. По-видимому, это просто POSIX API и больше ничего.... за исключением того, что этот документ последний раз обновлялся в 2006 году. Это лучшее, что я мог найти в Google.
Так ли это, как все сегодня стоит на месте? Другими словами, были ли разработаны лучшие / более простые и приятные идиоматические способы работы с общими объектами за последнее десятилетие?
Примечание: я понимаю, что стандарт языка C++ не совсем решает эту проблему (если вообще), поэтому я спрашиваю о том, что люди используют на практике.
1 ответ
Мартин Оливье в настоящее время работает над библиотекой динамической загрузки разделяемой библиотеки C++ (извините, скороговорка): dylib, при некоторой поддержке и советах от меня :-P
В частности, он берет на себя задачу искажения имен. Жаль, что не задействовано больше людей, которые могли бы потратить время на разработку дополнительных соглашений об искажении имен (например, MVSC).