编译glibc版本的时间检查

时间:2012-06-11 22:42:07

标签: g++ glibc

我需要编译时检查将使用什么版本的glibc。

唯一的编译时间检查(即#defines)我可以找到返回glibc日期(__ GLIBCXX__),日期和版本之间的对应似乎是iffy。如何在编译时检查将要使用的glibc版本?

我的代码将在几个系统上编译和运行,包括一个非常旧的系统。特别是我对使用malloc_info感兴趣(参见http://man7.org/linux/man-pages/man3/malloc_info.3.html)。这是在2.10版本中添加到glibc中的。该程序将在其构建的相同(或相同的系统)上使用。

1 个答案:

答案 0 :(得分:5)

我认为您正在寻找的是__GLIBC____GLIBC_MINOR__,它们代表了GNU C库的主要和次要版本号的int。有关详细信息,请查看thisarchive link)。

因此,如果__GLIBC__大于2,或__GLIBC__等于2且__GLIBC_MINOR__大于或等于10,则malloc_info()应该有效。