Загрузка библиотеки динамически в Linux или OSX?

Я знаю, что в Windows вы бы сделали что-то вроде LoadLibrary, а затем установите указатель на функцию с помощью GetProcAddress,

Но как можно было бы сделать подобное в Linux или OSX? Причина в том, что я хочу разработать подключаемую систему для своего приложения X-платформы.

Спасибо

Ответ 1

Вы можете использовать dlopen и друзей как на Linux, так и на Mac OS X (эта страница руководства для Mac должна работать для обоих). Обратите внимание, однако, что вам нужно быть осторожным, чтобы не смешивать 32-битный и 64-битный код и библиотеки; на Mac, просто убедитесь, что библиотеки являются "универсальными двоичными файлами".

Ответ 2

Вы ищете dlopen (аналогично LoadLibrary), dlclose (аналогично FreeLibrary) и dlsym (аналогично GetProcAddress).

Ответ 3

В Linux вы используете dlopen() (открытая библиотека), dlsym() (обычно смотрите символ (= функция или значение)) и друзей: http://linux.die.net/man/3/dlopen

Я слышал, что он работает одинаково в OS X, но у меня нет опыта с этим.

Ответ 4

Эквиваленты POSIX dlopen и dlsym. Я знаю, что у них есть Linux, и я был бы удивлен, если OS X этого не сделает.