---
title: 常见使用问题
description: "- plugin needed to handle lto object"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/hgcc/hist-hgcc/kunpenghgcc_06_0063.html
sourcePath: /source/zh/kunpengdevkithistory/hgcc/hist-hgcc/kunpenghgcc_06_0063.html
indexId: ba46b7b6091b3d3274496ae49f9f4f3d8fcbb95e67e70f12cdcce5fdf8d523a771
---
# 常见使用问题

- plugin needed to handle lto object
  链接器或者相关工具链在处理LTO对象文件时，需要调用LTO插件来解析对应 section 的信息。这类报错一般是由于 ar/ranlib/nm 没有调用LTO插件导致的，可以通过更换为 gcc-ar/gcc-ranlib/gcc-nm 来解决。

- undefined symbol
  这类问题有多种成因，以下列举三种较为常见的原因：

  一是符号版本控制相关的情况。由于GCC不支持__asm__形式的符号版本控制，需要在应用源码层面替换为__attribute__(.symver) 形式的符号版本控制。

  二是由于编译过程依赖了objcopy等工具，此类工具不支持处理LTO对象文件，会导致需要重命名重定义的符号没有重命名，引起符号未定义的问题。

  三是涉及到了链接时插桩(-Wl,--wrap=foo)，在LTO下会出现 __wrap_foo 的符号未定义的问题，该问题上游社区正在解决中。

- multi-defined symbol
  一般是由于编译过程依赖了objcopy等工具，此类工具不支持处理LTO对象文件，会导致需要隐藏的符号没有隐藏，引起重复定义的问题。
