2

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

我能找到的唯一编译时间检查(即#defines)返回glibc日期(__GLIBCXX__),日期和版本之间的对应关系似乎不确定。您如何在编译时检查将要使用的 glibc 版本?

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

4

1 回答 1

5

我认为您正在寻找的是__GLIBC__and __GLIBC_MINOR__,它代表intGNU C 库的主要和次要版本号。看看这个存档链接)了解更多详情。

因此,如果__GLIBC__大于 2,或者__GLIBC__等于 2 并且__GLIBC_MINOR__大于或等于 10,那么malloc_info()应该可以工作。

于 2012-06-11T22:54:11.863 回答