确定libstdc ++的版本

时间:2013-12-20 18:32:55

标签: c++ libstdc++

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

2 个答案:

答案 0 :(得分:1)

您可以使用__GLIBCXX__宏来检查libstdc++的版本信息。 (ABI Policy Appendix的第7节中有一个值列表。)

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

答案 1 :(得分:1)

libstdc ++附带GCC,因此正确的方法是通过测试其__GNUC____GNUC_MINOR____GNUC_PATCHLEVEL__ predefined macros来检查GCC版本。

如果您在Clang中使用libstdc ++,则可以测试__GLIBCXX__ > 20131020UL是否修复了该错误的日期。该日期之后的版本应该包含修复程序。