c++ - 如何判断是否使用了 glibc

标签 c++ c glibc

我正在尝试为用于不同平台和操作系统的大型框架实现回溯功能。在其中一些中,它与 glibc 相关联,而在另一些中,使用了不同的东西(例如 uclibc)。 backtrace() 函数只存在于前者中。

有没有办法判断是否使用了glibc?任何#define?我无法在 glibc 手册中找到答案。我知道在编译期间我不能有链接时间信息,但我猜包含文件必须有所不同。至少必须在某处声明回溯。 我想检查它,而不必被迫将显式标志传递给编译器。

最佳答案

包含 features.h,它包含您需要的宏,例如

#define __GNU_LIBRARY__ 6

/* Major and minor version number of the GNU C library package.  Use
   these macros to test for features in specific releases.  */
#define __GLIBC__       2
#define __GLIBC_MINOR__ 4

关于c++ - 如何判断是否使用了 glibc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266354/

相关文章:

c++ - 使用 CMake 构建时缺少依赖项

C++过滤不相关坐标数据的算法

c - 如果程序有 `-I`语句,是否需要在 `gcc`中使用 `#include`标志?

c - gdb 反向调试 avx2

c - 如何将返回代码传递给 at_exit 函数

c - Glibc - ucontext.h 中的错误,但仅限于 -std=c11

c++ - 2 C++中的维数组指针操作

c - 如何使 getch() 函数采用双字符而不是一个?

C错误: undefined reference to

c++ - 部分归并排序