Я пытаюсь создать общую библиотеку объектов, которая будет открыта программой, используя dlopen(). Эта библиотека будет использовать функциональные возможности, предоставляемые отдельной статичной библиотекой.
Я включил соответствующий флаг в линию ссылок, чтобы вытащить статическую библиотеку при связывании динамического (например, у меня есть -lfoo для libfoo.a), и компоновщик не жалуется. Однако, когда основная программа вызывает dlopen() в динамической библиотеке, вызов завершается с сообщением "undefined", ссылающимся на символ из статической библиотеки.
Запуск nm указывает, что данный символ имеет значение undefined в динамической библиотеке, а основная программа не содержит его, так как я могу заставить компоновщик вытащить этот символ? Сам символ находится в секции неинициализированных данных (тип символа "B" в выходе nm).