【问题标题】:Compile time check for glibc versionglibc 版本的编译时间检查
【发布时间】:2012-06-11 22:42:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: g++ glibc


    【解决方案1】:

    我认为您正在寻找的是__GLIBC____GLIBC_MINOR__,它们代表了GNU C 库的主要和次要版本号的int。查看this(archive link) 了解更多详情。

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

    【讨论】:

    • 我确定我看过那个页面或类似的页面,但显然我错过了。谢谢。
    • 没问题,很高兴我能帮上忙。
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 2012-11-20
    • 2020-12-07
    • 2014-11-24
    • 1970-01-01
    • 2011-09-30
    • 2014-11-16
    相关资源
    最近更新 更多