我在Bug 58800中遇到了libstdc++,这会导致我的一些代码出现分段错误。我有一个解决办法,但当固定版本的libstdc++可用时,我不想使用它。检查libstdc++版本(通过ifdef)的正确方法是什么?而且,理想情况下,哪个版本会受到此bug的影响?
发布于 2014-03-10 13:43:22
libstdc++随GCC而来,所以正确的方法是通过测试__GNUC__、__GNUC_MINOR__和__GNUC_PATCHLEVEL__ 预定义宏来检查GCC版本。
如果您在Clang中使用libstdc++,您可以测试__GLIBCXX__ > 20131020UL ( bug的修复日期)是否正确。该日期之后的发行版应该包含修复程序。
发布于 2013-12-20 18:48:50
可以使用__GLIBCXX__宏检查libstdc++的版本信息。(ABI政策附录第7节列出了一个值列表。)
bug以一个已经修复的版本列表结束,但是找出bug是什么时候引入的可能会更棘手。如果您使用的是autoconf,我建议您编写一个测试,如果存在bug,测试就会崩溃。
https://stackoverflow.com/questions/20709894
复制相似问题