c++ - Boost ld:最终链接失败:错误值:针对未定义的隐藏符号重定位 R_X86_64_PC32
问题描述
我正在尝试将 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 安装位置而不是构建位置的 boost 库和 boost .so 文件解决了这个问题。
推荐阅读
- ios - 如何用子视图卸载uiView
- node.js - 出现错误:TypeError:无法读取带有承诺的未定义的属性“then”
- typescript - 在 Typescript 的样式化组件中使用类型
- deep-learning - 我如何解决错误名称“val_dataloader”未定义
- python - Pandas df.merge 意外的排序行为
- wordpress - Easy Digital 下载结帐页面无法以访客身份查看
- c# - 创建一个弹出窗口的正确方法是什么,该窗口包含一个仅在第一次加载到 WPF 项目时才执行的方法?
- java - Maven 在构建时出错=无法识别 Java 路径
- python - 如何获取多索引数据帧第二级的最后 10 行?
- python - PANDAS & glob - Excel 文件格式无法确定,必须手动指定引擎