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