本机二进制库包含重复的复合符号错误

本机二进制库包含重复的复合符号错误

我正在使用 GCC 从源代码编译 C/C++ 库。大部分代码是为 Unix 编写的,重点是 Linux 内核。我一直在尝试将其调整为适用于 AIX。我所做的大部分更改只是添加特定于 AIX 的标志标签和条件,假设而言,它们不应破坏代码。但是,我遇到以下重复符号警告,.__init_aix_libgcc_cxa_atexit该警告在检查时是在预编译或编译时创建的复合符号。

警告

ld: 0711-228 WARNING: Duplicate symbols were found while resolving symbols.
    The following duplicates were found:
 Symbol                    Source-File(Object) OR Import-File{Shared-object}
 ------------------------- -------------------------------------------------
 .__init_aix_libgcc_cxa_atexit ../../../../../gcc-9.1.0/libgcc/config/rs6000/crtcxa.c(/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/9.1.0/pthread/ppc64/crtcxa.o)
    ** Duplicate **        {../../../target/usr/local/lib/libhdfs.so}
RESOLVE: 176 of 5701 symbols were kept.
RESOLVE: The return code is 4.

附加信息:AIX 7.1 CMAKE 3.15.0 GCC 9.1-AIX-7.1

我已经搜索了源代码和构建脚本,但似乎找不到问题。我已强制编译器使用 C99 和 C++ 11 标准,所以这应该不是问题。如果有人能给我更多指导,告诉我应该去哪里查找或如何解决这个问题,那就太好了,因为我怀疑这个“警告”会导致下游编译错误。

如果还有其他需要,请告诉我。

相关内容