我使用自编译的 GCC 4.8.2 在 Scientific Linux 6.4(64 位)下编译了一个 C++11 应用程序。该应用程序可以正常编译,但是在运行它时(LD_LIBRARY_PATH
设置为包含 gcc 4.8.2 lib64 目录以便它找到libstdc++.so.6
),出现以下消息:
Symbol `_ZTISt16invalid_argument' causes overflow in R_X86_64_32 relocation
Symbol `_ZTISt16invalid_argument' causes overflow in R_X86_64_32 relocation
Symbol `_ZTISt12out_of_range' causes overflow in R_X86_64_32 relocation
(去错符号名称是typeinfo for std::invalid_argument
和typeinfo for std::out_of_range
)
通常应用程序运行良好;但在某些情况下它会崩溃,显然是因为它试图捕获一个“invalid_argument”异常,该异常被提升到顶部框架。
这些消息是什么意思,我该如何解决?