我正在使用 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 标准,所以这应该不是问题。如果有人能给我更多指导,告诉我应该去哪里查找或如何解决这个问题,那就太好了,因为我怀疑这个“警告”会导致下游编译错误。
如果还有其他需要,请告诉我。