Глава 36. Библиотека dynlink: динамическая загрузка и связывание объектных файлов
Библиотека dynlink поддерживает безопасную с точки зрения типов динамическую загрузку и связывание объектных файлов байт-кода (.cmo и .cma) в работающей программе на байт-коде или нативных модулей расширения (обычно файлов .cmxs) в работающей нативной программе. Безопасность типов обеспечивается ограничением набора модулей работающей программы, к которым может обращаться загружаемый объектный файл, и проверкой того, что работающая программа и загружаемый объектный файл были скомпилированы с одними и теми же интерфейсами этих модулей. В нативном коде также выполняются некоторые проверки совместимости реализаций (чтобы избежать ошибок, связанных с межмодульной оптимизацией); при сборке нативных модулей расширения может быть полезно скрыть файлы .cmx, чтобы они оставались независимыми от реализации модулей основной программы.
Программам, использующим библиотеку dynlink, достаточно включить каталог библиотеки dynlink с помощью -I +dynlink и связать dynlink.cma или dynlink.cmxa с объектными файлами и другими библиотеками.
Примечание: чтобы гарантировать, что динамически загружаемые модули имеют доступ ко всем библиотекам, доступным основной программе (а не только к тем частям этих библиотек, которые фактически используются в основной программе), программы, использующие библиотеку dynlink, следует связывать с параметром -linkall.
- Модуль Dynlink: динамическая загрузка объектных файлов байт-кода
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/libdynlink.html