Использование глобальной переменной в разделяемой библиотеке

Я пишу приложение на C, которое использует глобальную переменную (структуру файла журнала). В моем приложении я загружаю общие библиотеки динамически во время выполнения, и я хочу использовать глобальную переменную, указывающую на ту же структуру файла журнала, чтобы вести журнал в общей библиотеке.

Это не " Кажется, что это возможно при простом подходе:

  • объявление глобальной переменной как extern не будет работать, потому что dlopen () говорит, что глобальная переменная является неопределенным символом
  • , снова определение глобальной переменной будет работать, но «новый» переменная не будет такой же, как "исходная" в исполняемом файле

Любой намек, как это исправить, было бы здорово.

Спасибо!

7
задан herzrasen 27 November 2010 в 13:08
поделиться