如何查看mingw32-gcc-win32及x86_64-w64-mingw32-gcc-win32编译器的glibc版本
查看MinGW32/MinGW-w64 GCC对应的C标准库版本
首先需要明确:MinGW(包括mingw32-gcc-win32和x86_64-w64-mingw32-gcc-win32)默认不使用glibc,它依赖的是Windows系统的MSVCRT(Microsoft Visual C++ Runtime),以及MinGW自身提供的辅助运行库(如libmingwex、libstdc++等)。如果要确认相关库的版本,可以用以下方法:
方法1:通过编译器预定义宏查看
直接编译一段代码,打印预定义的版本宏:
对于
mingw32-gcc-win32:mingw32-gcc -E -dM - < /dev/null | grep -E "(MSVCRT|__MINGW32_VERSION|__GLIBC__)"注:如果输出中没有
__GLIBC__相关宏,说明当前编译器未使用glibc;__MINGW32_VERSION会显示MinGW自身的版本,MSVCRT相关宏会显示依赖的Windows运行库版本。对于
x86_64-w64-mingw32-gcc-win32:x86_64-w64-mingw32-gcc -E -dM - < /dev/null | grep -E "(MSVCRT|__MINGW64_VERSION|__GLIBC__)"
方法2:查看链接的运行库文件版本
找到MinGW安装目录下的运行库文件,比如libmsvcrt.a或libmingwex.a,通过以下方式查看版本:
strings /path/to/mingw/lib/libmsvcrt.a | grep -i version
替换/path/to/mingw为你的MinGW实际安装路径。
方法3:编译测试程序打印版本
编写一个简单的C程序,运行后输出相关版本信息:
#include <stdio.h> #include <stdlib.h> int main() { // 打印MinGW版本 #ifdef __MINGW32_VERSION printf("MinGW32 Version: %s\n", __MINGW32_VERSION); #endif #ifdef __MINGW64_VERSION printf("MinGW64 Version: %s\n", __MINGW64_VERSION); #endif // 检查是否存在glibc #ifdef __GLIBC__ printf("GLIBC Version: %d.%d\n", __GLIBC__, __GLIBC_MINOR__); #else printf("当前编译器未使用GLIBC,依赖Windows MSVCRT或MinGW自有运行库\n"); #endif return 0; }
编译运行:
- 32位:
mingw32-gcc test.c -o test && ./test - 64位:
x86_64-w64-mingw32-gcc test.c -o test && ./test
内容的提问来源于stack exchange,提问作者Prq
相关产品推荐
相关产品推荐

