是否可以将 gcc 的链接器与 dlopen 结合使用?

Is it possible to use gcc's linker in conjunction with dlopen?

所以,我有一个使用 xerces-c c++ 库的程序。我正在尝试修改它以在程序 运行 时不要求库存在,因为它的某些部分可以独立 运行。是否可以使用 dlopen() 加载库来完成此操作,同时仍使用 gcc 中的链接器在编译时解析符号?也许我遗漏了一些东西,但 xerces-c API 似乎很难与 dlsym() 一起使用,这就是我试图找到解决方法的原因。

在这种情况下,最简单的解决方案是将您的程序分成两部分,一个没有 xerces-c 依赖项的主程序,以及一个有的共享库。然后你 dlopen 你的共享库,它加载 xerces 并使用它。通过这种方式,您基本上可以定义自己的库API。