是否可以将 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。
所以,我有一个使用 xerces-c
c++ 库的程序。我正在尝试修改它以在程序 运行 时不要求库存在,因为它的某些部分可以独立 运行。是否可以使用 dlopen()
加载库来完成此操作,同时仍使用 gcc 中的链接器在编译时解析符号?也许我遗漏了一些东西,但 xerces-c API 似乎很难与 dlsym()
一起使用,这就是我试图找到解决方法的原因。
在这种情况下,最简单的解决方案是将您的程序分成两部分,一个没有 xerces-c
依赖项的主程序,以及一个有的共享库。然后你 dlopen
你的共享库,它加载 xerces
并使用它。通过这种方式,您基本上可以定义自己的库API。