【发布时间】:2010-09-25 00:10:59
【问题描述】:
我有两个第三方库偶尔会导出相同的符号名称。加载可执行文件时,ld 通常会选择错误的文件,结果导致我崩溃。我不能对这些库的内容做太多,所以可能有一种方法可以指导 ld 如何找到正确的实施方式?
OS - Solaris 10,我的程序是由 autoconf/autotools/gcc 构建的,冲突的库是 libclntsh(Oracle 驱动程序的一部分)和 OpenLDAP。不幸的是,我不能使用 Oracle 的 LDAP 客户端实现——它缺少 OpenLDAP 的许多功能。
已编辑:链接如下:libclntsh.so->A.so->MAIN
【问题讨论】:
-
嗨,德米特里。看my question。显然,您可以使用
objcopy -N foo删除共享对象的符号。
标签: gcc linker solaris shared-libraries ld