【问题标题】:Boost ld: final link failed: Bad value: relocation R_X86_64_PC32 against undefined hidden symbolBoost ld:最终链接失败:错误值:针对未定义的隐藏符号重定位 R_X86_64_PC32
【发布时间】:2020-10-21 12:14:08
【问题描述】:

我正在尝试将 boost 库与我们的代码链接,但出现以下错误

ld: /boost/lib/laxno/libboost_thread.a(thread.o): 重定位 R_X86_64_PC32 针对未定义的隐藏符号 `_ZTCN5boost10wrapexceptINS_21thread_resource_errorEEE0_NS_16exception_detail10clone_implINS3_19error_info_injectorIS1_EEEE' 在制作共享对象时不能使用 ld:最终链接失败:值错误

我已经使用 GCC 7.4.0 使用以下命令构建了 boost ./b2 cxxflags="-fPIC -std=c++14" cflags="-fPIC" -j4

如果我在构建 boost 库时排除了“-fPIC”标志,则会出现以下错误:

/boost/lib/laxno/libboost_thread.a(thread.o): 重定位 R_X86_64_32 对 `.text' 在制作共享对象时不能使用;使用 -fPIC 重新编译 /boost/lib/laxno/libboost_thread.a:无法读取符号:值错误

【问题讨论】:

  • Boost 版本是 1.70
  • 相关帖子可能会有所帮助,在此google search找到

标签: c++ linux boost linker


【解决方案1】:

使用来自 boost 安装位置而不是构建位置的 boost 库和 boost .so 文件解决了这个问题。

【讨论】:

  • 你能详细说明你是怎么做到的吗?
猜你喜欢
  • 2016-06-30
  • 1970-01-01
  • 2013-01-24
  • 1970-01-01
  • 2020-01-17
  • 2019-01-02
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
相关资源
最近更新 更多