C 针对共享符号名称的库链接的程序运行了错误的实现
这有点难理解,但我已经尽力了 在带有gcc 4.4.6和ld 2.20.51的Red Hat 6.4上 我从一个共享库(.so)和一个静态库(.a)链接到一个二进制可执行程序代码中 共享库公开程序直接调用的API。此共享库的实现是针对静态库编译和链接的 静态库还公开了自己的API,该API由程序直接调用。它的一些实现基于直接复制到其中的静态lib1文件的子集 没有一个API(无论是库还是库)实际公开由静态lib1实现的数据类型或函数 因为代码是复制的,所以符号是相同的 在运行期间,我看到了以下行为:C 针对共享符号名称的库链接的程序运行了错误的实现,c,linux,static-linking,dynamic-linking,C,Linux,Static Linking,Dynamic Linking,这有点难理解,但我已经尽力了 在带有gcc 4.4.6和ld 2.20.51的Red Hat 6.4上 我从一个共享库(.so)和一个静态库(.a)链接到一个二进制可执行程序代码中 共享库公开程序直接调用的API。此共享库的实现是针对静态库编译和链接的 静态库还公开了自己的API,该API由程序直接调用。它的一些实现基于直接复制到其中的静态lib1文件的子集 没有一个API(无论是库还是库)实际公开由静态lib1实现的数据类型或函数 因为代码是复制的,所以符号是相同的 在运行期间,我看到了以下行
如何让对静态库API的所有调用在修改的库1的代码中运行实现,以及共享库API中的调用在静态库1中运行实现?请提供用于创建(包括“链接”)共享库的精确命令。此外,如果使用实际的文件名而不是像“lib 1 modified”这样的东西,那么就不会那么混乱了。和往常一样,a是最有用的。请提供用于创建(包括“链接”)共享库的精确命令。此外,如果使用实际的文件名而不是像“lib 1 modified”这样的东西,那么就不会那么混乱了。和往常一样,a是最有用的。