我正在尝试为用于不同平台和操作系统的大型框架实现回溯功能。在其中一些中,它与 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/