我创建了一个名为car.so的.so文件。我想在test.cc代码中测试和使用这个库。在我想编译的命令行中:g ++ test.cc -o test。我不想也链接(包括)库car.so.如何使用.so文件而不在命令行运行g ++
如何做到这一点?
我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的一般
看一看动态链接。这与操作系统有关,但我假设你使用某种Linux。在那里,看看dlsym和相关函数。 – arne
是的。我正在工作OB UUNTU。按照与操作系统相关的内容,您有何看法?是否可能或不能用G ++运行一个包含图书馆但不包括图书馆在内的编译命令的C文件? – sunset
男人,你的大写锁定 –