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