C++ So 编译及使用 (Todo)
共享库Open在C++中,dlopen()函数用于动态加载库(也称为共享库)。该函数的原型如下:
1cpp复制代码void* dlopen(const char* filename, int flag);
其中,filename参数指定要加载的库的文件名,flag参数指定加载库的方式。
RTLD_LAZY,RTLD_LOCAL 和RTLD_DEEPBIND是flag参数选项,它们的作用如下:
RTLD_LAZY:使用该选项时,库中的函数和变量在第一次使用时才会被解析。也就是说,如果在库中引用了某个函数或变量,那么在加载库时不会立即解析它。而是在第一次调用该函数或使用该变量时,才会进行解析。这种方式被称为懒加载。
RTLD_LOCAL:使用该选项时,库中的函数和变量对于调用程序来说是局部的。这意味着在库中定义的函数和变量不会与全局命名空间中的同名函数和变量冲突。这种方式有助于避免命名冲突的问题。
RTLD_DEEPBIND是dlopen()函数的选项之一,它的含义是:在加载共享库时,将该库的符号查找范围置于该库的符号表中,而不是全局符号表中。也就是说,当在共享库中使用符号时,会优先在
...