Итак, у меня есть программа, которая использует xerces-c
c++. Я пытаюсь изменить его, чтобы не требовать, чтобы библиотека присутствовала при запуске программы, так как есть ее части, которые можно запускать независимо. Можно ли выполнить это с помощью dlopen()
чтобы загрузить библиотеку, все еще используя компоновщик в gcc для разрешения символов во время компиляции? Может быть, мне что-то не хватает, но API-интерфейс xerces-c кажется очень трудным для использования с dlsym()
, поэтому я пытаюсь найти обходное решение.
Самое простое решение в таких случаях - разделить вашу программу на две части: основную программу, которая не имеет зависимости от xerces-c
, и разделяемую библиотеку. Затем вы dlopen
свою общую библиотеку, которая загружает xerces
и использует ее. Таким образом, вы можете определить свой собственный API библиотеки, в основном.
ld
убивал мою программу, когда ее там нет