【发布时间】:2011-10-10 09:56:50
【问题描述】:
我正在为 Linux 编写一个库,它具有一些依赖于共享库 libfoo.so 的功能。
我正在尝试考虑 libfoo.so 不存在的情况。对于这种情况,我有一个明确定义的行为,但我不知道如何正确实现它,明智的链接。
目前,我的库是针对 libfoo.so 编译的,当客户端尝试在不包含 libfoo.so 的环境中针对它编译代码时,会出现链接错误。
我的问题是,我如何构建我的库,即使 libfoo.so 不存在,它也会编译,但行为不同。我自己能想出的唯一解决方案是从它分支一个不支持 foo 的版本,但必须有更好的方法......
提前致谢
由于给出的答案而进行的跟进: 似乎不链接 libfoo 而是使用 dlopen 动态加载它可以解决问题,但它需要我手动导出所有符号,并且范围有限......是否有任何“不那么痛苦”来实现这一目标?
【问题讨论】:
标签: c++ linker shared-libraries