Динамический линкер
Имена в Base.Libdl не экспортируются и должны вызываться, например, как Libdl.dlopen().
-
dlopen(libfile::AbstractString[, flags::Integer]) -
Загрузка общей библиотеки, возвращающая неявную обработку.
Необязательный аргумент флагов — это побитовое ИЛИ одного или нескольких из
RTLD_LOCAL,RTLD_GLOBAL,RTLD_LAZY,RTLD_NOW,RTLD_NODELETE,RTLD_NOLOAD,RTLD_DEEPBIND, иRTLD_FIRST. Они преобразуются в соответствующие флаги команды POSIX (и/или GNU libc и/или MacOS) dlopen, если это возможно, или игнорируются, если указанная функциональность недоступна на текущей платформе. Флаги по умолчанию зависят от платформы. В MacOS по умолчаниюdlopenфлагиRTLD_LAZY|RTLD_DEEPBIND|RTLD_GLOBAL, в то время как на других платформах значения по умолчаниюRTLD_LAZY|RTLD_DEEPBIND|RTLD_LOCAL. Важное использование этих флагов — указать поведение, отличное от по умолчанию, при связывании динамического загрузчика библиотек с экспортированными символами и если привязанные ссылки находятся в локальном или глобальном пространстве процесса. Например,RTLD_LAZY|RTLD_DEEPBIND|RTLD_GLOBALпозволяет символам библиотеки быть доступными для использования в других общих библиотеках, что решает ситуации, когда есть зависимости между общими библиотеками.
-
dlopen_e(libfile::AbstractString[, flags::Integer]) -
Аналогично
dlopen(), за исключением возвращенияNULLуказателя вместо повышения ошибок.
-
RTLD_DEEPBIND -
RTLD_FIRST -
RTLD_GLOBAL -
RTLD_LAZY -
RTLD_LOCAL -
RTLD_NODELETE -
RTLD_NOLOAD -
RTLD_NOW -
Постоянная перечисления для
dlopen(). Смотрите страницу руководства вашей платформы для получения подробной информации, если применимо.
-
dlsym(handle, sym) -
Поиск символа из обработанной общей библиотеки, возвращающий указатель на вызываемую функцию при успехе.
-
dlsym_e(handle, sym) -
Поиск символа из обработанной общей библиотеки, молча возвращающий
NULLуказатель при неудачном поиске.
-
dlclose(handle) -
Закрытие общей библиотеки, на которую ссылается обработка.
-
dlext -
Расширение файла для динамических библиотек (например, dll, dylib, so) на текущей платформе.
-
find_library(names, locations) -
Поиск первой библиотеки в
namesв пути в спискеlocations,DL_LOAD_PATH, или системных путях библиотек (в указанном порядке), которые могут быть успешно загружены с помощью dlopen. При успехе возвращаемое значение будет одним из имен (возможно, с префиксом одного из путей в местах). Эта строка может быть назначенаglobal constи использоваться в качестве имени библиотеки в будущихccall. В случае неудачи возвращается пустая строка.
-
DL_LOAD_PATH -
При вызове
dlopen(), пути в этом списке будут сначала просматриваться в порядке, прежде чем искать системные расположения для получения обработчика корректной библиотеки.
© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.5/stdlib/libdl/