有没有办法在Linux上加载共享库而不会自动尝试解析符号,即dlopen()
在Windows上的行为更像LoadLibrary()
?
我遇到的问题是我的软件模块使用的共享库的功能与我们静态链接的应用程序加载的类似共享库的功能冲突。修改所有应用程序是不可行的,所以我不能确保通过使用dlsym()
使用正确的库句柄检索的指针来发生所有函数调用,并且我无法控制首先加载哪个共享库
如果在我的模块中我可以dlopen()
我的共享库而不会以任何方式影响应用程序,然后dlsym()
我想要的符号,这将很容易修复。不幸的是,dlopen()
似乎必须始终使用RTLD_LAZY
或RTLD_NOW
标记来解析所有可能的符号(懒惰或急切地),这两者都不是我想要的。
那么有另一种方法可以避免这种冲突吗?