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

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

本文关键字:dlopen 结合 链接 gcc 是否      更新时间:2023-10-16

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

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