我能够成功构建我的代码,但在尝试运行它时遇到以下错误 . 我在 AIX7.1 使用 GCC4.8.5 .

0509-130 Symbol resolution failed for libadobelinguistic.a because: 0509-136 Symbol _ZNSt5__padIcSt11char_traitsIcEE6_S_padERSt8ios_basecPcPKcllb (number 94) is not exported from dependent module /user/unicore/rs6000aix/compiler/gcc4.8.5/aix6.1/lib/libstdc++.a(libstdc++.so.6). 0509-022 Cannot load module . 0509-026 System error: Cannot run a file that does not have a valid format. 0509-192 Examine .loader section symbols with the 'dump -Tv' command."}

正如在少数地方所建议的那样,我使用 -Wl,--no-undefined flag在编译时使项目失败 . 但编译并没有失败 .

demangled function

std::__pad<char, std::char_traits<char> >::_S_pad(std::ios_base&, char, char*, char const*, long, long, bool)

我无法找到对此功能的引用 .

此外,在少数几个地方建议如果出现此类错误,您需要在AIX的情况下设置 LIBPATH 变量 . 我有libpath变量设置为

LIBPATH=/user/unicore/rs6000aix/compiler/gcc4.8.5/aix6.1/lib:/opt/freeware/lib:/user/unicore/rs6000aix/compiler/gcc4.8.5/aix6.1/lib/gcc/powerpc-ibm-aix6.1.0.0/4.8.5:/opt/freeware/lib/pthread/ppc64

仍然没有用 .

我找到了它的引用https://sourceforge.net/p/slo/feature-requests/4/ . 但它没有帮助 .

编辑:似乎libstdc导致AIX7.1上的问题 . 我们有系统libstdc和gcc4.8.5的libstdc . 当我链接到系统libstdc gdb运行成功,但我的程序失败,但当我在gcc4.8.5中设置libstdc的路径 . GDB不运行但我的可执行文件运行 . 好像系统libstdc和gcc4.8.5 libstdc不兼容 .