gcc和glibc的关系
GCC GNU Compiler Collection
GCC编译器套件
glibc GNU C LIBrary
GNU的C运行库
两者是linux系统中使用最多的编译-运行套件。glibc可以视作独立的运行库,而GCC,甚至部分Linux操作系统组件都依赖于这套运行库。这就导致,glibc不能随意更新,因为版本变化,符号变化导致的运行库加载失败,很有可能会使系统直接崩溃(血的教训)。
所以在跨平台编译软件的时候,一定要使用目标平台格式的glibc库,不然链接不起来,或者会无法运行。
#include <stdio.h>
#ifdef __GLIBC__
#include <gnu/libc-version.h>
#endif
int
main(void)
{
#ifdef __GLIBC__
printf("GNU libc compile-time version: %u.%u\n", __GLIBC__, __GLIBC_MINOR__);
printf("GNU libc runtime version: %s\n", gnu_get_libc_version());
return 0;
#else
puts("Not the GNU C Library");
return 1;
#endif
}