Вы должны объявить прототип для функций, тела которых недоступны во время компиляции .
Это можно сделать, включив соответствующий заголовок (.h
файл), который будет содержать такое определение:
int foo(int bar);
Обратите внимание на отсутствие тела там.
Часто с разделяемыми библиотеками также существует слой косвенности, где формируется структура, содержащая указатели на функции. Когда библиотека загружена, она настраивает указатели функций для ссылки на функции, содержащиеся в общей библиотеке.