Я создал .so файл с именем car.so. Я хотел бы протестировать и работать с этой библиотекой в коде test.cc. В командной строке я хотел бы скомпилировать: g ++ test.cc -o test. Я не хочу также связывать (включать) библиотеку car.so.
Как это сделать?
Мой код test.cc выглядит так:
void* handle = dlopen("/home/v3/car.so", RTLD_LAZY);
Car* (*create)();
void (*destroy)(Car*);
create = (Car* (*)())dlsym(handle, "create_object");
destroy = (void (*)(Car*))dlsym(handle, "destroy_object");
Car* carr = (Car*)create();
carr->brake();
destroy( carr );
Я также хотел бы спросить, возможно ли включить файл 3 .so в один файл .so.
редактирование:
Я работаю в Ubuntu / Linux