我創建了一個名爲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
男人,你的大寫鎖定 –