查找符号相关性的起源
Finding Origin of Symbol Dependency
我正在处理一个相当大的项目,该项目有大量的外部依赖项。一段时间以来,我一直在开发过程中进行调试构建。现在,当我尝试构建发行版(经过很长时间)时,我会收到一个错误,说找不到特定的符号。具体来说,在我的情况下,链接器会给我一个错误,说找不到start_thread_noexcept
符号。这个符号预计会在boost线程中找到,但当我使用nm -G -D --demangle
检查boost线程的版本时,我发现实际上没有找到这个符号(不过我确实找到了一个名为start_thread
的符号)。显然,noexcept符号可以在库的最新版本中找到。
然而,我的问题比较笼统。我现在想做的是找到这个符号要求的来源。我猜想一定有一些新的函数调用正在进行,它反过来调用start_thread_noexcept
函数。很明显,在编译我的代码时,必须有一个.o
文件,我可以追溯到这个需求。要么是这样,要么我添加了一些新的第三方依赖项,这反过来又需要新版本的boost线程库。如何找到需要此未定义符号的代码/库?
我转到中间目录并进行
for x in *.o; do echo $x; nm $x | grep "_ZN5boostlsIcSt11"; done
这使我能够跟踪编译单元,反过来又使我能够(手动)找到有问题的代码。
相关文章:
- 来自colPivHouseholderQr().solve的拟合相关性
- 获取处理器相关性(linux)时出现问题
- 在线程退出之前,线程分配的内存块是否与线程本身具有相同的相关性?
- 在早期的 C 和 C++ 编译器中,手动位移位与乘法和除法的相关性如何?
- Qt 与 QML 语言的相关性
- 在 OpenCV 上设置线程相关性
- Opencv Sobel 算子是否计算相关性
- 【临时规范】/6的起源故事
- 无效指针的相关性
- 为什么窗口不登上顶部,使用setWindowpos的起源
- 虚空主体的起源是什么
- Windows Phone 中的进程相关性
- 对测试单元使用预处理器指令的相关性
- C :与OpenCV的跨相关性
- OPENCV错误:交叉相关性断言失败
- 计算 OpenCV 中两个 Mat 文件的相关性
- ++ 后缀和前缀的起源
- 如何使用OpenCV的规范化相关性?
- 常量返回类型在 NRVO 案例中的相关性
- 查找符号相关性的起源