确定 libstdc++ 的版本

Identify the version of libstdc++

本文关键字:版本 libstdc++ 确定      更新时间:2023-10-16

>我在libstdc++中遇到了错误 58800,这导致我的一些代码出现段错误。我有一个解决方法,但是当libstdc++的固定版本可用时,我不想使用它。检查libstdc++版本(通过ifdef)的正确方法是什么?而且,理想情况下,哪些版本会受到此错误的影响?

libstdc++自带GCC,所以正确的方法是检查GCC版本,通过测试其__GNUC____GNUC_MINOR____GNUC_PATCHLEVEL__预定义的宏。

如果您将libstdc++与Clang一起使用,则可以测试__GLIBCXX__ > 20131020UL错误修复的日期。该日期之后的版本应包含修补程序。

您可以使用

__GLIBCXX__宏检查libstdc++的版本信息。 (ABI 策略附录的第 7 节中有一个值列表。

该错误以已修复的版本列表结束,但弄清楚何时引入错误可能会更棘手。如果您使用的是autoconf,我建议您编写一个测试,如果存在错误,该测试就会崩溃。