Моя программа использует плагины, которые загружаются динамически с помощью dlopen ().Расположение этих плагинов может быть произвольным, поэтому они не обязательно находятся в пути к библиотеке.В некоторых случаях один плагин должен зависеть от другого плагина.Поэтому, если A и B являются динамическими библиотеками, я сначала загружу A, а затем загрузлю B, который использует символы, определенные в A.
Мое чтение документации dlopen () подразумевает, что если я укажу RTLD_GLOBAL, все это должно работать,Но это не так.Когда я вызываю dlopen () для второй библиотеки, она завершается ошибкой, сообщая, что не может найти первую (которая уже была загружена с помощью dlopen ()):
Error loading library /usr/local/openmm/lib/plugins/libOpenMMRPMDOpenCL.dylib: dlopen(/usr/local/openmm/lib/plugins/libOpenMMRPMDOpenCL.dylib, 9): Library not loaded: libOpenMMOpenCL.dylib
Referenced from: /usr/local/openmm/lib/plugins/libOpenMMRPMDOpenCL.dylib
Reason: image not found
Как мне сделатьэто работа?