如何追踪未定义的符号
How to track down an undefined symbol
我目前被一些成功编译到.so文件中的代码卡住了。当我尝试将我的库链接到某些代码时,如果失败,请使用以下语句:
未定义符号:_ZrSRKN5CORBA3AnyERPN3RTT5corba4Math7MatrixdE
我能得到的唯一有用的信息是,某个对象或函数使用以下类型:"CORBA::Any"(一种常规的CORBA类型)和"RTT::CORBA::Math::Matrixd"(一个使用一个hh文件和两个cc文件定义的类型)。
我很想知道在我的代码中,这个符号是在哪里生成的,以及为什么找不到它。我怀疑它代表了在我的一个cc文件中定义的一个函数,所以下面是我如何编译整个东西的:
g++-I{CORBA包含}main.cpp one.cc two.cc-L{CORBA库}
我应该遵循什么调试过程?
在Unix环境中,c++filt将在您的系统上可用,这就是您使用它来分解函数名的方法:
c++filt _ZrSRKN5CORBA3AnyERPN3RTT5corba4Math7MatrixdE
我刚刚使用了c++filtjs
,因为它同时支持g++
和msvc++
,所以它返回时是这样的:
operator>>=(CORBA::Any const&, RTT::corba::Math::Matrixd*&)
相关文章:
- vscode g++链路故障:体系结构x86_64的未定义符号
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- C++ 中 dlsym 的未定义符号
- 仅在 MacOS 上析构函数的未定义符号
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- PCL 出错:体系结构x86_64 @pcl的未定义符号
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 体系结构x86_64的未定义符号:链接器错误
- C++ std::vector<int> 体系结构的未定义符号 x86_64:
- 生成文件:体系结构x86_64的未定义符号
- libc++abi未定义符号:_ZTVN10__cxxabif120__si-class_type_infoE
- Xcode"体系结构x86_64的未定义符号"
- 体系结构x86_64的未定义符号:找不到原因
- SWIG链接器:未定义符号:_ZN2cv8fastFreeEPv(cv::fastFree(void*))
- 如何修复架构x86_64的未定义符号,Boost Asio 1.58
- 在Qt5上去静态库:架构的未定义符号x86_64:
- 体系结构x86_64的未定义符号:c++/ h 文件和 cpp 文件
- 监视 SDK 下的未定义符号"__Unwind_SjLj_Unregister"
- 使用 Boost/Python 的未定义符号 - 复杂
- 建筑x86_64的未定义符号:"vtkDebugLeaksManager::vtkDebugLeaksManager()",引用自: