GCC报告基于版本库的未引用符号
gcc report unreferenced symbol for version based library
我的一个共享库my。所以使用基于版本的符号作为symbol@@test_1.2.3从库test.so。当我链接我的。所以与我的可执行文件共享库,它说'未引用的符号符号@@test_1.2.3'。当链接行如下时,会发生这种情况-
g++ -o myexecutable myexecutable.o -L/path-to-my.so -lmy -L/path-to-test.so -ltest
如果我把链接改为-
g++ -o myexecutable myexecutable.o -L/path-to-my.so -lmy /path-to-test.so/libtest.so
它的工作原理。
为什么用-L
指定libtest.so
时不拾取,但当给出完整路径时却拾取?
我怀疑在某个地方有另一个libtest
(可能是libtest.a
), ld首先发现它没有您的程序正在寻找的符号。
使用-Wl,--verbose
选项让链接器提供关于它正在打开或试图打开的文件的详细输出。这应该告诉您为什么一次运行的行为与另一次不同,以及'流氓' libtest在哪里(如果有的话)。
相关文章:
- 未定义的引用,尽管存在符号,但 std::experimental::可选
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 对符号'_ZN3ros10NodeHandle9subscribeERNS_16SubscribeOptionsE'的未定义引用
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 对符号'_ZN3pcl7console5printENS0_15VERBOSITY_LEVELEPKcz'的未定义引用
- 函数 LNK2019 "int __cdecl __scrt_common_main_seh(void)" 中引用的未解析外部符号主错误 (?__scrt_common_main_seh@@YAHXZ
- 如何引用符号表中的值?
- 函数_wmain中引用未解析的外部符号_RasSetEntryPropertiesW@24
- 输入迭代器是否可以仅在赋值的右侧符号上取消引用?
- 未定义的引用,即使库正在链接并且它包含正确的符号
- C++ 链接器错误 LNK 2019 函数中引用的未解析的外部符号
- 建筑x86_64的未定义符号:"vtkDebugLeaksManager::vtkDebugLeaksManager()",引用自:
- boost::存在符号链接不取消引用
- 如何修复"未解析的外部符号"公共:void__thiscall canoid::getinput(void)"(?Getinput@Canoid@@QAEXXZ) 在函数 _main C++ 中引用
- 方法声明 c++ 后的引用符号
- 数据类型之后或变量名称之前的引用符号之间的差异
- 这个引用符号表示什么
- 错误:未定义文件中的第一个引用符号
- GCC报告基于版本库的未引用符号
- 错误:对cv:: videoccapture::~ videoccapture()的引用符号未定义,命令行中缺少DSO