Существует два способа загрузки общих объектов в C ++
Для любого из этих методов вам всегда понадобится заголовочный файл для объекта, который вы хотите использовать. Заголовок будет содержать определения классов или объектов, которые вы хотите использовать в своем коде.
Статический:
#include "blah.h"
int main()
{
ClassFromBlah a;
a.DoSomething();
}
gcc yourfile.cpp -lblah
Динамически (в Linux):
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
int main(int argc, char **argv) {
void *handle;
double (*cosine)(double);
char *error;
handle = dlopen ("libm.so", RTLD_LAZY);
if (!handle) {
fprintf (stderr, "%s\n", dlerror());
exit(1);
}
dlerror(); /* Clear any existing error */
cosine = dlsym(handle, "cos");
if ((error = dlerror()) != NULL) {
fprintf (stderr, "%s\n", error);
exit(1);
}
printf ("%f\n", (*cosine)(2.0));
dlclose(handle);
return 0;
}
* Украдено с Справочная страница Linux dlopen
Процесс под windows или любой другой платформой такой же, просто замените dlopen версией платформы динамического поиска символов.
Чтобы динамический метод работал, все символы, которые вы хотите импортировать / экспортировать, должны иметь внешнюю связь C.
Здесь есть несколько слов Здесь о том, когда использовать статическое и когда использовать динамическое связывание.