【发布时间】:2018-12-14 14:01:33
【问题描述】:
假设 libA.so 依赖于 libB.so、libC.so、libD.so。未定义的符号和所需的库名称之间是否存在映射:
undefined_symbol_1 comes from libB.so
undefined_symbol_2 comes from libC.so
undefined_symbol_3 comes from libC.so
undefined_symbol_4 comes from libC.so
undefined_symbol_5 comes from libD.so
还是分开存放:
Undefined symbols: undefined_symbol_1, undefined_symbol_2, undefined_symbol_3, undefined_symbol_4, undefined_symbol_5;
Required libraries: "libB.so", "libC.so", "libD.so";
系统:ubuntu
工具:g++
【问题讨论】:
-
这取决于操作系统和工具。有些工具可能只列出所有未解析的符号,让您弄清楚必须找到哪些库并将其包含在链接中。一些工具可能会保留哪些库提供哪些符号的缓存索引,并为您提供提示。
-
谢谢。我目前正在使用 ubuntu + g++。你能谈谈这个特定的平台吗?
-
阅读 Drepper 的How to write shared libraries
-
非常有趣的文章。虽然读了很多...