我有一个 hostapp.cpp
在运行时加载一个 object.so
共享对象,共享对象仅使用所需的 .h 文件编译主机应用程序,但在运行时它需要访问这些功能(存在于主机应用程序中)。
使用 -rdynamic
编译主机应用程序显然解决了这个问题,但它不必要地将对象暴露给主机应用程序的完整符号表,即使它只需要解决其中的几个。
我如何才能准确指定共享对象将识别哪些主机应用程序符号?
编辑:我正在使用 GNU 工具链在 GNU/Linux 上构建和运行。
最佳答案
您的问题未明确说明:您从未说明您正在构建的平台、您使用的链接器等。
假设您为 Linux 构建,您可以使用以下方法之一指定要从主可执行文件导出的符号:
关于c++:运行时链接共享对象与主机应用程序,符号表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36128464/