我最近在 iOS SDK4.3 的 System.B.dylib
库上运行了 nm -m -p -g
并且惊讶地发现了很多符号标记为 (undefined) (external)
。为什么以及何时将 undefined symbol 标记为外部?我可以理解标记为 lazy
或 weak
的未定义外部符号,但这些不是。许多 pthread_xxx
函数都属于这一类。然而,当我链接到这个库时,所有的符号都被解析了。 pthread_xxx
符号在 \usr\lib\system
文件夹中的一个库中定义,因此我假设它们从那里得到满足。它在链接过程中如何工作?
最佳答案
自从我成为 nm
和 ld
C 编码忍者以来已经有一段时间了,但我认为这仅意味着这个链接还有其他库。
关于c - 共享库中未定义的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7503249/