c - 如何查找链接到同一应用程序的两个库之间的所有符号冲突(引用和未引用的符号)?

标签 c gcc linker

如何在 gcc 中的链接时将静态库的所有符号强制链接到应用程序?

我正在尝试通过链接两个静态库来创建应用程序。这两个库可能有一些具有相同名称的符号。我想找到所有此类符号并在其中一个库中重命名它们。

但是,我发现取消引用函数被消除了,因此我无法找到所有可能发生冲突的符号。有没有办法强制 gcc 链接两个静态库中的所有符号(引用和未引用),从而找到冲突符号?

或者还有其他办法吗?

最佳答案

您可以在每个库上使用 nm 命令 ( link ) 吗? nm 应列出所有符号,然后您可以比较每个库的 nm 输出。

关于c - 如何查找链接到同一应用程序的两个库之间的所有符号冲突(引用和未引用的符号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295475/

相关文章:

linux - 为什么指定输入库的顺序很重要?

c - 返回char数组中数字的递归函数

c - 如何在 Emu8086 中使用 'gcc' 从 .c 运行转换后的 .asm 代码

c - 如何创建一个修改结构体的函数

c - 在 elf-gcc 中,exp() 只在第一次调用时正常工作,之后就不行了

c++ - GCC 和 MSVC 之间的文件输出不一致

c - 直接使用 ld 链接 C 程序失败, undefined reference `__libc_csu_fini`

c++ - 继续获取 "error LNK1104: cannot open file ' boost_thread-vc100-mt-gd-1_41.lib"

c++ - 如何将这些 c 代码行转换为 c++

c - 为什么这些 while 循环不混合我给它们的数字?